Detecting Communication Network Insights of Alerts

ABSTRACT

In one embodiment, a computing system accesses a plurality of quality of experience metrics from a plurality of geographic areas, respectively. The system identifies a first geographic area of the plurality of geographic areas connected by a first communication network that has low quality of experiences based on quality of experience metrics and a set of criteria. The set of criteria comprises one or more thresholds corresponding to the quality of experience metrics. The system determines, for the first geographic area, a severity of the low quality of experiences. The severity is based on a connection demand metric associated with each geographic area. The system identifies a second communication network that has one or more quality of experience metrics higher than the first communication network. The system sends, to the client system, instructions for automatically changing from the first communication network to the second communication network.

PRIORITY

This application is a continuation under 35 U.S.C. § 120 of U.S. patentapplication Ser. No. 16/932,483, filed 17 Jul. 2020, which is acontinuation under 35 U.S.C. § 120 of U.S. patent application Ser. No.16/226,477, filed 19 Dec. 2018, which claims the benefit under 35 U.S.C.§ 119(e) of U.S. Provisional Patent Application No. 62/752,908, filed 30Oct. 2018, which are incorporated herein by reference. U.S. patentapplication Ser. No. 16/226,477 is also continuation-in-part under 35U.S.C. § 120 of U.S. patent application Ser. No. 16/155,510, filed 9Oct. 2018, which claims the benefit under 35 U.S.C. § 119(e) of U.S.Provisional Patent Application No. 62/699,312, filed 17 Jul. 2018, whichare incorporated herein by reference.

TECHNICAL FIELD

This disclosure generally relates to communication network, and inparticular, to detecting communication network insights of alerts.

BACKGROUND

Communication networks, such as fiber-optic networks, cellular networks,and broadband wireless networks, provide data communication channels forcomputing systems (e.g., a computer, a tablet, a smartphone) tocommunicate data and information, such as, text, images, videos, websitecontent, etc. A geographic area covered by a communication network maybe divided into a number of sub-areas (e.g., tiles, cells in cellularnetworks, regions such as a county, an area of a collection of cities,towns, village, etc.). Each sub-area may generate certain amount ofnetwork traffic and the communication network may provide connectionservices to any number sub-areas covered by the communication network.Users may access the communication network (e.g., using a computingdevice) for downloading and uploading data. The communication networkmay have a bandwidth to allow the users to use services supported by thecommunication network.

SUMMARY OF PARTICULAR EMBODIMENTS

Particular embodiments described here relate to a method of monitoringcommunication network performance (e.g., network traffic congestions,network coverage issues) and user experience (e.g., network speeds,network latency, signal status) of the end users of communicationnetworks at both front-end and back-end. Particular embodiments of thesystem may detect network insights of alerts, such as network trafficcongestions or network coverage issues in one or more geographic areascovered by a communication network. Particular embodiments may determineone or more network performance metrics for detecting networkcongestions. For example, the system may firstly identify, in acommunication network, one or more areas that have relative high trafficvolume. The system may determine, for each identified area, a firstaverage network speed during busy hours of the communication network anda second average network speed during non-busy hours of thecommunication network. The system may calculate a ratio of thedifference between the first and second average network speeds to thefirst or second average network speed and use the ratio as a networkperformance metric to gauge the network performance and the quality ofthe user experience in that area. As another example, the system maydetermine a congestion metric for each individual area based onreference points associated with a network speed curve (e.g., downloadspeed vs. traffic volume or number of samples). The system may calculatethe difference between average download speeds of a first referencepoint and a second reference point of the network speed curve. The firstreference point may be a reference point representing an average ormedian of the download speed for the relatively flat portion of thedownload speed curve. The second point could be in the portion of thecurve corresponding to the higher end of the traffic volume. The systemmay calculate a ratio of the difference of the two average downloadspeeds at the two reference points to the average speed at the first orthe second reference point and use the ratio as the network performancemetric. The system may use a machine learning (ML) model to determine athreshold value for the network performance metric and compare thedetermined network performance metric with that threshold value. Whenthe network performance metric is below the threshold value, the systemmay identify a network traffic congestion in that area. The system mayrank a number of areas having network traffic congestions using thenetwork performance metric and send congestion alerts to operators aboutthe detected network traffic congestions. The congestion alerts may beranked by one or more associated attributes including, for example,network performance metrics, locations, median download speed, regionaldownload speed, cell identifications, etc. Particular embodiments of thesystem may determine one or more network coverage metrics (e.g., signalstrength, number of connected towers, signal stability status) andcompare the network coverage metrics to respective thresholds fordetecting the network coverage issues, as network insights of alerts.Particular embodiments of the system may determine one or more qualityof experiences related metrics (e.g., download speed, latency such asround trip time, upstream latency, downstream latency, download speed atbusy hours, latency at busy hours, etc.) and compare the quality ofexperience metrics to respective thresholds for detecting the quality ofexperiences issues, as network insights of alerts. For example, if oneof these quality of experiences related metrics is worse than needed orrequired threshold, or is among the worst certain percentage, then aquality of experience related issue or network insights of alert couldbe detected and reported. For another example, if a mapping function ofone or multiple of the quality of experiences related metrics is worsethan needed or required threshold, or is among the worse certainpercentage, then a quality of experience related issue or networkinsights alert could be detected and reported.

Particular embodiments described here relate to a method of determiningroot causes of low quality of experience (QoE) of a communicationnetwork based on a number of QoE metrics (e.g., download speed, downloadspeed of busy hours, latency) and root-cause metrics (e.g., signalstrength, congestion indicator, number of samples). The system mayfirstly collect application usage data in a number of areas (e.g.,cells, tiles, regions) over a duration of N days (e.g., 7 days, 28days). Then, the system may preprocess the collected data for filteringand cleaning and aggregate the collected data into data points per hourper individual day or per hour all N days. After that, the system maydetermine one or more QoE metrics and root-cause metrics based on thecleaned and aggregated data. The system may use a first set of criteriato determine low QoE in one or more areas of interest (e.g., cells,tiles, regions). For example, the system may use one or morepredetermined low QoE thresholds (e.g., an absolute value threshold, apercentage threshold, a percentile threshold) to identify the low QoEcells based on one or more QoE metrics (e.g., download speed, downloadspeed of busy hours, latency). Then, the system may use a second set ofcriteria to determine the causes of the low QoE in these areas. Forexample, the system may determine the cells percentile (e.g., based onroot-cause metrics) of each root-cause metric and use one or moreroot-cause thresholds to filter the root-cause metrics to determine thelow QoE root causes in each area with low QoE. The system may generate areport for the low QoE areas with identified causes and generatesolution recommendations for optimizing the communication network basedon the identified causes. The system may optimize communication networkand improve the user experience of end users of the communicationnetwork based on generated solution recommendations. In particularembodiments, the area of interest may be an area covered by a group ofcells under certain conditions, for example, cells operating at the samefrequent band, cells operating at the same frequency bandwidth, cells ofthe same network generation (e.g., 3G, 4G, 5G), cells operating by asame mobile network operator, etc.

The embodiments disclosed herein are only examples, and the scope ofthis disclosure is not limited to them. Particular embodiments mayinclude all, some, or none of the components, elements, features,functions, operations, or steps of the embodiments disclosed herein.Embodiments according to the invention are in particular disclosed inthe attached claims directed to a method, a storage medium, a system anda computer program product, wherein any feature mentioned in one claimcategory, e.g. method, can be claimed in another claim category, e.g.system, as well. The dependencies or references back in the attachedclaims are chosen for formal reasons only. However any subject matterresulting from a deliberate reference back to any previous claims (inparticular multiple dependencies) can be claimed as well, so that anycombination of claims and the features thereof are disclosed and can beclaimed regardless of the dependencies chosen in the attached claims.The subject-matter which can be claimed comprises not only thecombinations of features as set out in the attached claims but also anyother combination of features in the claims, wherein each featurementioned in the claims can be combined with any other feature orcombination of other features in the claims. Furthermore, any of theembodiments and features described or depicted herein can be claimed ina separate claim and/or in any combination with any embodiment orfeature described or depicted herein or with any of the features of theattached claims.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates an example system for optimizing networkinfrastructure based on application data.

FIG. 2 illustrates an example framework for detecting networkcongestions.

FIGS. 3A-C illustrate example data related to network download speed andtotal number of samples associated with a cell having networkcongestions.

FIG. 4 illustrates an example congestion metric determining module whichdetermines congestion metrics based on different average network speeds.

FIGS. 5A-F illustrate user interfaces of the system for detectingnetwork congestions and reporting the congestion alerts.

FIG. 6 illustrates an example method for detecting network trafficcongestions in geographical areas covered by a communication network.

FIGS. 7A-C illustrate an example process for determining causes for anumber of low QoE cells of a cellular network.

FIGS. 8A-B illustrate example user interfaces for configuring the rootcause analysis and displaying the results.

FIG. 9 illustrates an example method of determining causes of lowquality of experience in geographic areas connected by a communicationnetwork.

FIG. 10 illustrates an example network environment associated with asocial-networking system.

FIG. 11 illustrates an example computer system.

DESCRIPTION OF EXAMPLE EMBODIMENTS Overview

Quality of Experience

Quality of experience (QoE) of end users or customers may be a generalmetric which indicates the degree of satisfactory of end users relatedto experiences of the applications or services they are using. Forexample, QoE could include the download speed, the latency, and otherparameters, that are related to end users experience at the mobileapplication level. QoE could also be a metric derived from the downloadspeed or latency (e.g., by a mapping function) to indicate end userssatisfactory for the experience. QoE may be one of the most importantfactor for communication network planning, monitoring, diagnosis, or/andoptimization. The mobile network operators (MNOs) of the communicationnetworks may need to understand which geographic areas have unsatisfiedQoE and what are the service types (e.g., live video streaming,high-definition video downloading) having low QoE. The MNOs may use thisinformation to reduce the operating expenses (OPEX) (e.g., via reducingthe complaints, tickets, lowering the network optimization cost) and toreduce the capital expenditures (CAPEX) (e.g., by most effectivelypinpointing out where to add more cells and avoiding adding cells inunnecessary places) of the communication network. The MNOs could alsouse this information to recover or even boost the traffic volume(implying more revenue), which would have been suppressed due tounsatisfied QoE.

Furthermore, communication network engineering may need deeper insightsunderstanding related to QoE. Such understanding could providesupporting inputs to MNOs for making decisions on whether to optimizethe network and which aspect to optimize (e.g., whether to upgrade thenetwork from current generation to next generation, whether to do thenetwork expansion by adding more cells for cell densification, where toadd cells) directly or indirectly based on QoE. Particular embodimentsof the system may link QoE to wireless communication engineering byproviding information about whether the QoE of end users of a particulararea (e.g., a cell, a tile, a region) is healthy and what could be thecauses for unhealthy QoE from wireless network perspective (e.g.,coverage issues, capacity issues, latency issues, other issues). Thecoverage and the capacity of the communication network may be two of themost important aspects for cellular engineering to understand the statusand healthiness of the network. Particular embodiments of the system mayuse the data collected at the application level to generate models forcoverage issues and congestion issues. Particular embodiments of thesystem may provide a congestion alert model using QoE as a key factorfor identifying congestions of the network and generating congestionalerts. Particular embodiments of the system may provide network changerequests to the computing devices as an attempt to mitigate furthernetwork congestion.

Particular embodiments of the system may determine one or more QoErelated metrics (e.g., download speed, latency such as round-trip time,upstream latency, downstream latency, download speed at busy hours,latency at busy hours, etc.) and compare the QoE related metrics torespective thresholds for detecting the quality of experiences issues,as network insights of alerts. For example, if one of these quality ofexperiences related metrics is worse than the needed or requiredthreshold, or is among the worst certain percentage, then a quality ofexperience related issue or network insights of alert may be detectedand reported. For another example, if a mapping function of one ormultiple of the quality of experience related metrics is worse thanneeded or required threshold, or is among the worse certain percentage,then then a quality of experience related issue or network insights ofalert may be detected and reported.

Problems

Traditional technologies and systems for optimizing communicationnetworks may monitor network traffic of a large number cellular towers(e.g., 100 k) at network infrastructure level and optimize networkperformance based on the monitored network traffic. For example, thesystems may include instrumentations carried by a measurement vehicledriving around in the network for measuring network performance.However, these technologies and system are very inefficient and limitedin capability. For example, they cannot detect network congestion andcoverage problems for the large number of cells of cellular networks.Furthermore, the optimization that only relies on network infrastructurelevel information has many shortcomings which could lead to suboptimalresults. For example, although network traffic (e.g., download speed,busy hours, traffic volume, tower performance) at network infrastructurelevel may be measured, this infrastructure level information may hideinformation about actual user experience and application usages atapplication level. Traditional network optimization technologies andsystems are lack of effective means to obtain data usage informationrelated to network status (e.g., high definition video downloading orlive video streaming associated with a high traffic volume during busyhours, messaging associated with a low network traffic, etc.). Thus,traditional network optimization technologies and systems cannotassociate network performance degradation with particular data usage andcannot identify the root causes of network problems at networkinfrastructure level. As another example, traditional networkoptimization technologies and systems cannot directly evaluate the QoEof end users because lack of effective means to obtain or accessapplication usage data at application level. When applications andnetwork infrastructure are optimized separately, these optimizations mayhave suboptimal results and lack feedback information on theeffectiveness and impact of the optimizations. As another example,traditional network optimization technologies and systems do not haveaccess the network data of competitive carriers, and therefore lackcompetitive perspectives (e.g., competitor's network performance or/andoptimization actions in particular areas) when optimizing the network atinfrastructure level, which may lead to suboptimal network performancecomparing to other competitors.

Solution

Particular embodiments of the system may collect application data ofusers (e.g., application names, application types, time duration,quality of experience, network speed, latency, network coverage) atapplication level and provide supporting and feedback information to thenetwork infrastructure optimization (e.g., at infrastructure level)based on the collected application data. Particular embodiments of thesystem may detect network congestions in one or more areas covered by anetwork and detect network congestions as the basis for networkoptimization. Particular embodiments of the system may collect data(e.g., application data, network performance data) from networks ofmultiple carriers and provide competitive perspective for optimizingnetworks. Particular embodiments of the system may optimize thecommunication network infrastructure based on user-level data andinfrastructure level data.

Benefits

Particular embodiments of the system address the limitations andshortcomings of existing network optimization technologies and systemsby providing technological solutions and improvements for monitoring andoptimizing the network performance. Particular embodiments of the systemmay collect user experience data and network performance data atapplication level, generate network congestion alerts or networkcoverage alerts, and identify the root causes of the network performancedegradation to support optimization of the network performance.Particular embodiments of the system enable network optimization (e.g.,infrastructure level, application level) based on information frommultiple layers of the system (e.g., both infrastructure level andapplication level) instead of information from one single layer only(e.g., infrastructure level only or application level only), andtherefore improve network performance in ways that are not possiblebefore. Particular embodiments of the system may provide more effectiveoptimization recommendations with reduced cost for improving the networkperformance. Particular embodiments of the system may directly evaluatethe effectiveness of the network optimization by evaluating the qualityof experience (QoE) of users based on the application data. Particularembodiments of the system may provide competitive perspectives foroptimizing network in particular areas based on the application datacollected cross the networks of multiple carriers. Particularembodiments of the system may provide faster and more accuratecongestion detections for cells at a previously prohibitable largescale, enable more effective optimization of network infrastructure(e.g., upgrading capacity, tuning cellular towers, adding fiber links),and provide better QoE to end users of the networks. Particularembodiments of the system may reduce the operating expense (OPEX) (e.g.,via reducing the complaints, tickets, lowering the network optimizationcost), reduce the CAPEX (e.g., via most effectively pinpoint out whereto add more cells and avoid adding cells in non-needed places), recoveror boost the traffic volume which would have been suppressed due tounsatisfied QoE.

Network Optimization System

FIG. 1 illustrates an example system 100 for optimizing networkinfrastructure based on application data. In particular embodiments, thesystem 100 may include a number of layers including, for example, asocial network platform 110 (e.g., servers, databases), networkinfrastructure 120 (e.g., fiber networks, cellular towers, cablenetworks, switches), computing devices 130 (e.g., client devices,computers, smartphones, tablets), operating systems 140 (e.g., iOS 142,android 144), applications 150 (e.g., social network applications 152,third-party applications 154, operators' applications, carriers'applications), users 101, etc. The social network platform 110 mayprovide content and services to users 101 through the networkinfrastructure 120 and the computing devices 130. The computing devices130 may include device hardware 134 (e.g., computers, smartphones,tablets) and may be associated with particular data plans 132 providedby one or more carriers. The computing devices 130 may include anoperating system (e.g., iOS 142, android 144) and a number ofapplications 150 (e.g., social network applications 152, third-partyapplications 154) running on the computing devices 130. The users 101may interact with the applications 150 running on the computing devices130 to access the content and services provided by the social networkplatform 110. In particular embodiments, the system 100 may collect data(e.g., application names, application types, time duration, quality ofexperience, network speed, latency, total amount of data delivered,signal strength, number of connected towers, signal stability status,network coverage, etc.) from the applications 150 running on thecomputing devices 130 used by the users 101. The system 100 may collectthe application data through one or more application programminginterfaces (APIs) provided by the social network platform 110 orthird-parity entities (e.g., network carriers, operating systemproviders, application developers, application service providers). Thesystem 100 may use the collected application data for monitoring thenetwork performance, such as, detecting network congestion or coverageproblems. The system 100 may provide network insights 160 (e.g.,congested areas, congest alerts, coverage alerts, network speeds,network latency, network performance, etc.) based on the collectedapplication data for the optimization of network infrastructure 120. Thesystem 100 may also provide feedback information (e.g., improvements onQoE, network speed, latency) for the optimization actions taken on thenetwork infrastructure 120.

In particular embodiments, the system 100 may monitor the communicationnetwork performance (e.g., network traffic congestions, network coverageissues) based on the data from both front-end (e.g., user devices 130,applications 150, operating system 140, websites, search engines, etc.)and back-end (e.g., social network platform 110, network infrastructure120, servers, switches, database, etc.) of the communication network. Inparticular embodiments, the system 100 may collect user experience data(e.g., network speeds, network latency, signal stability status) fromboth front-end and back-end of the communication network. In particularembodiments, the system 100 may use the data collected from thefront-end (e.g., applications) to generate optimization recommendationsfor the back-end network infrastructures 120 or/and social networkplatform 110. In particular embodiments, the system 100 may use the datacollected from the back-end (e.g., social network platform 110, networkinfrastructure 120) to generate optimization recommendations for thefront-end user experience (e.g., applications 150, operating system 140,user devices 130, data plan 132, network speeds, latency, etc.). Inparticular embodiments, the system 100 may determine one or more networkperformance metrics (e.g., ratios based on average network speeds) andcompare the network performance metrics to respective threshold valuesto detect network congestions in one or more areas covered by thecommunication network. In particular embodiments, the system 100 maydetermine one or more network coverage metrics (e.g., signal strength,number of connected towers, signal stability status) and compare thenetwork coverage metrics to respective threshold values to detect thenetwork coverage issues.

Congestion Detection Framework Overview

FIG. 2 illustrates an example framework 200 for detecting networkcongestions. In particular embodiments, the framework 200 may beimplemented on the social network platform 110 (e.g., social networkservers) or third-party platforms (e.g., third-parity servers), whichmay coordinate with the network infrastructure 120 and user devices 130to collect application data and detect network congestions. Inparticular embodiments, the framework 200 may include a data collectionmodule 202, a data preprocessing module 203, a data aggregating module204, a congestion metric determining module 206, a congestion alertidentification module 208, a congestion alert reporting module 210, amachine-learning (ML) model 220, a number of databases (e.g., celldatabases 212, tile databases 214, regional databases 216, labeleddatabases 222), etc. In particular embodiments, the data collectionmodule 202 may collect raw application data for a number of computingdevices (e.g., via APIs). Then, the collected data may be preprocessedby the data preprocessing module 203 and aggregated by the dataaggregating module 204 into particular format (e.g., per hour per eachindividual day or per hour all days of a number days). The aggregateddata may be stored in one or more databases (e.g., cell databases 212,tile databases 214, regional databases 216) or/and be fed to the MLmodel 220. For example, the data may be aggregated at tile level andeach tile may have a side length of L and an area of L×L. In particularembodiments, the data may be aggregated at one or multiple tile levels.If the data is aggregated at cell level, the data may be stored in celldatabases. If the data is aggregated at region level or polygon level,the data may be stored in regional databases. The aggregation processcould utilize the data from the tile databases 214, which may include,for example, the mapping of the tiles to region, mapping of the cells toregion, mapping of the tiles to cell, and the location (e.g., latitude,longitude) of the application requests. The aggregated data may belabeled manually by experts or automatically by algorithms and thelabeled data may be stored in a labeled database 222 which may be usedto train the ML model 220. The congestion metric determining module 206may access the data stored in one or more databases (e.g., celldatabases 212, tile databases 214, regional databases 216) and determineone or more network performance metrics based on the accessed data. Inparticular embodiments, the congestion metrics determining results fromthe congestion metric determining module 206 may be fed to the ML model220 for training of the ML model. The congestion identification module208 may identify one or more congestions in one or more areas of thenetwork based on comparison of the network performance metrics andcorresponding thresholds 224. The threshold 224 that are used todetermine the congestions may be determined and fed to the congestionidentification module 208 by the ML model 220. Then, the congestionalert reporting module 210 may generate congestion alerts and reportthese alerts to the MNOs. In particular embodiments, the generatedcongestion alerts may be ranked by one or more network performancemetrics. The ranked list of the congestion alerts may be filtered andsent to the MNOs to help the MNOs to prioritize the detectedcongestions.

Data Collection and Aggregation

Identify High Traffic Cells

In particular embodiments, the system may use data collection module 202to collect raw application data from the computing devices used by endusers. The system may firstly identify a number of high traffic areas(e.g., cells, tiles, regions) in the network for further congestiondetection in those areas. The high traffic areas may be identified basedon a determination that one or more traffic metrics (e.g., trafficvolume, total number of samples or total number of requests) in theseareas are above corresponding pre-determined thresholds or above averagetraffic metric values of one or more other areas. In particularembodiments, the system may rank the areas of the network by one or moretraffic metrics and identify the top M number of areas as the hightraffic areas of the network. For example, the system may rank the cellsof a cellular network by the number of requests of each cell and takethe top M number of cells as the high traffic cells for further networkcongestion detection.

Data Collection

In particular embodiments, the system may collect raw application data(e.g., via APIs) in the identified high traffic areas (e.g., cells,tiles, regions) of the network. The data collected by the system mayinclude information about, for example, how people are using theapplications, how much time they spend using the applications, what areapplication names and types, how often the users come back to theapplications, what is quality of experience (e.g., network speed,latency, network coverage), etc. In particular embodiments, the datacollected by the system may include location-based network performancedata, for example, network performance in particular areas of interest.The network performance data may include data representative of thenetwork performance at the application level (e.g. traffic volume ordemand volume or network speeds or network capacity, i.e. bandwidth),e.g. the network performance as experienced by the computing device,while executing an application. The data collected by the system mayinclude competitor network performance, for example, network performancedata of other carriers in the areas of interest. The raw applicationdata may be logged based on requests from applications together with thetime stamp associated which each application request. The collected datamay include the cell identifications of serving cells that the userdevices are connected, location information of user devices (e.g., viaAPIs when user approves and enables location-based services of thedevices), carrier information (e.g., network providers), etc. The cellidentification of each cell may be unique by containing concatenatedinformation such as air interface technology type information. Thecollected data may include the counters related to the total bits ofinformation delivered and the time spent for delivery of thatinformation. The collected data may be used to determine one or morenetwork performance metrics. For example, the counters of the total bitsof the information delivered and the corresponding time spent fordelivery of that information may be used to determine the download speedof the network.

In particular embodiments, the user devices may communicate with thesocial network platform through internet connections. The user devicesmay send communication request to and receive data from the socialnetwork platform back and force. In particular embodiments, the systemmay sample the requests with a particular sampling rate (e.g., one inone hundred). The system may record a number of matrix, which mayinclude information about the number of devices that are connected, thenumber of requests from user devices, the time required for the requeststo be received by the social network platform, the amount of datatransmitted by the social network platform to the user devices, the timespent in transmitting that data to the user devices, etc. The system maydetermine, based on the collected data, a number of network parametersincluding, for example, the speed of connection (e.g., dividing thetotal bits processed by the time spent), the cells (e.g., cellidentifications) that the devices are connected to, information ofcarriers, time, locations, types of devices, application versions, etc.The data may be continuously collected at the applications and may beperiodically (e.g., daily or every several days) sent back to the socialnetwork platform for storage. The system may store the collectedinformation in a database on which the system may run an informationprocessing pipeline for detecting network congestions.

Data Aggregation

In particular embodiments, the system may use the data preprocessingmodule 203 to preprocess the collected raw data for data cleaning. Then,the system may use the data aggregating module 204 for data aggregating.The system may first filter and clean the collected data and then, mayaggregate the data at different levels. For example, the system mayaggregate the data by cells, tiles (e.g., squares describing geographicareas with different resolutions), or regions (e.g., zip-code regions,counties, provinces, states). After the data aggregation, the system mayvisualize the data set and use the aggregated data as inputs for networkmodelling. In particular embodiments, the system may store theaggregated data in different data bases. For example, the system maystore the data aggregated by cells in the cell database 212. As anotherexample, the system may store the data associated to or/and aggregatedby tiles or locations in the tile database 214. The informationassociated with tiles may include, for example, identifications of cellsrelated to the tiles, identifications of the tiles, tile sizes,identifications of carriers, metadata, network performance data, etc. Asanother example, the system may store the data associated to or/andaggregated by regions in the regional database 216. The data associatedto the regions may include polygons representing regions, polygonidentifications, collections of polygons, customized shapes representingregions, etc. A polygon in the regional database 216 may represent aregion of any size, for example, a zip-code area, a settlement, acounty, a town, a city, a state, a country, etc. The system may (e.g.,through the data aggregating module 204 or congestion metric determiningmodule 206) may access to all databases in including the cell database212, the tile database 214, or/and the regional database 216 fordetermining the network performance for network congestion detection.Each database may be mapped to any other databases by the system. Inparticular embodiments, the system may aggregate the collected dataperiodically (e.g., every week or every several weeks). In particularembodiments, the system may collect, preprocess, and aggregate data inreal time.

In particular embodiments, data aggregation may be performed for allapplication data related to all the devices associated with a particularcell. In particular embodiments, the data aggregation may be performedon the temporal dimension. As an example, the aggregated data can be perhour per each individual day. As another example, the aggregated datacan be per hour all days of a duration of a number of days. The numberof samples may be calculated for each unit of data of the aggregateddata, for example, for data of every hour for each individual day, ordata of every hour for a duration of N days (e.g., 7 days, 28 days).Alternatively, the system may calculate the total amount of bitsdelivered based on data aggregated for each hour each individual day, oreach hour all N days. The system may use the number of samples or/andthe total amount of delivered bits as indication of the demand volumeand traffic volume of the communication network.

Computation Efficiency

In particular embodiments, the system may process huge amount of datacollected from large scale communication networks. The system maycalculate the network performance metric based on data points per hourper individual day. Depending on the data amount and number of samples,the computation based on data points per hour per individual day mayrequire long computation time and large amount of computationalresources. To improve the computation efficiency and reduce thecomputing time, the system may use the data points per hour all days ofinterest instead of per hour per individual day to calculate the networkperformance metrics. For congestion modelling at cell level, the networkperformance metric based on data points per hour all days caneffectively enable the identification of the network congestion for acell and has the advantages of computing simplicity for large scalenetworks. For time series analysis, the system needs to understandcertain spike of the communication demand in a particular time window.The system may identify the cells that need time series analysis andperform the time series analysis for those cells based on data pointsper hour per individual day (because it includes more information intime domain).

Variations of Approaches

In particular embodiments, the system may perform congestion detectionsseparately for weekdays, weekends, or holidays. In particularembodiments, the system may generate a congestion detection model basedall the data collected during weekdays, weekends, or/and holidays. Inother embodiments, the system may generate separate models based on datacollected during weekdays, weekends, or holidays, respectively. Thesystem may filter the data and exclude cells with small number of datasamples (which represents low demand). For example, the system mayexclude cells with the lowest 20 percentiles of the number of samples.This can reduce the computation and increase efficiency for congestiondetection.

In particular embodiments, the system may remove an aggregated hourlydata point if the number of the samples, from which this data point isaggregated, is below certain threshold. For example, for a particularhour near 3 AM of an individual day, the aggregated data point maycorrespond to a number of samples of 2. In other words, only 2 datasamples (i.e., 2 requests) are logged during this particular hour. Thesystem may determine that the number of sample is lower than a threshold(e.g., 5) for this particular hour of this particular day and may removethis aggregated data point from the further process of congestion metricderivation. As another example, if a particular hour near 3 AMaggregated from N days, the aggregated data point may correspond to anumber of samples of 25. In other words, only 25 data samples (i.e., 25requests) are logged during this particular hour of N days. The systemmay determine that this number of samples 25 is lower than a threshold(e.g., 30), and may remove this aggregated data point from the furtherprocess of congestion metric derivation.

In particular embodiments, the system may exclude cells which have dataavailable only from limited number of hours (e.g., busy hours, non-busyhours, total number of busy hours and non-busy hours, or total number ofhours). If the number hours of the available data is below certainthreshold for a cell, the system may exclude this cell from furtherprocesses for congestion detection. For example, if none of the hourlydata points is removed (as described in former sections), the system mayhave 24 hours data points if the aggregated data is per hour all N days.If some hourly data points are removed, due to small number of samplesused in aggregation, the system may have less than 24 data points (e.g.,10 data points) after removing those hours with small number of samplesused in aggregation. The system may determine that the number ofremaining data points (e.g., 10 data points) is lower than a threshold(e.g., 20 data points) and the system may exclude this cell from furtherprocesses of congestion detection.

In particular embodiments, the system may determine a confidence levelscore for the derivation of download speed when there are small numbersof samples. The confidence score may indicate the level of confidence onthe estimation of the download speed. If the confidence is lower than athreshold, the system may exclude this cell from further processes ofcongestion detection. In particular embodiments, the system may usebinning or average over the data points per given number samples todetect network congestion instead of using per hour per cell datapoints.

Congestion Metric

Model A: Ratio Based on Busy Versus Non-Busy Hour Network Speeds

FIGS. 3A-C illustrate example data related to network download speed andtotal number of samples associated with a cell having networkcongestions. As illustrated in FIGS. 3A-B, the network speed and thetotal number of samples may be correlated and may vary over time. Ingeneral, a lower network speed may be correlated to a larger number ofsamples. As illustrated in FIG. 3B, the time windows that include alarger number of samples, which may indicate high demands for networkconnectivity, may be corresponding to relative busy hours. The timewindows, that include a smaller number of samples, may be correspondingto relative non-busy hours. The busy and non-busy hours may bedetermined based on the total number of samples over time. FIG. 3Cillustrates the correlation between the network download speed and thetotal number of samples of this particular cell. In FIG. 3C, both themean and median average download speeds are degraded when the totalnumber of samples increases, and the download speed degradation may beused as a sign that the cell is likely to have network congestion.

In particular embodiments, the system may determine one or more networkcongestion metrics for detecting network congestions based on networkspeeds of busy and non-busy hours. The congestion metrics may indicatethe degree of degradation of the network performance (e.g., networkspeeds) when one or more conditions change (e.g., total number ofsamples increasing). As an example and not by way of limitation, thesystem may first identify busy hours and non-busy hours for eachindividual cell. The busy hours could be the hours during which thecommunication network has the high traffic volume or demand volume. Forexample, the busy hours could be a certain percentile of the hourscorresponding to the highest number of samples, or highest amount ofinformation bits delivered. The percentile of the busy hours could befixed or could vary depending on configuration. The non-busy hours,similarly, could be the hours during which the communication network hasthe low traffic volume or demand volume. For example, the non-busy hourscould be a certain percentile of the hours corresponding to the lowestnumber of samples or lowest amount of information bits delivered. Thepercentile for non-busy hours may be fixed or may vary depending onconfiguration. In particular embodiments, the busy hours and non-busyhours may be determined by comparing the number of samples or networktraffic volume to one or more threshold values. The threshold values maybe fixed or may vary depending on configuration. In particularembodiments, the busy hours and non-busy hours may be determined by amachine-learning (ML) model which is trained by historical data.

In particular embodiments, after busy hours and non-busy hours aredetermined, the system may determine the network congestion metricsbased on data of the busy and non-busy hours. For example, the networkcongestion metric may be a ratio as described in the following equation(Equation 1):

$\begin{matrix}{{ratio} = \frac{S_{{busy}{hours}} - S_{{non} - {busy}{hours}}}{S_{{non} - {busy}{hours}}}} & (1)\end{matrix}$

where, S_(busy hours) is average download speed at busy hours, Snon-busy hours is average download speed at non-busy hours.Alternatively, the network congestion metric can be a ratio as describedin the following equation (Equation 2), which is a negative ofEquation 1. Note that Equation 1 could lead to a negative ratio valuefor the cell which is congested, while Equation 2 could lead to apositive ratio value for the cell which is congested.

$\begin{matrix}{{ratio} = {- \frac{S_{{busy}{hours}} - S_{{non} - {busy}{hours}}}{S_{{non} - {busy}{hours}}}}} & (2)\end{matrix}$

In particular embodiments, the system may use the average download speedat busy hours as the denominator in Equations 1 or 2.

Model B: Ratio Based on Reference Points

In particular embodiments, the system may determine the networkcongestion metric for each individual cell based on reference points ona network speed curve (e.g., download speed vs. traffic volume or numberof samples), as described in the following equations:

$\begin{matrix}{{ratio} = \frac{S_{{reference}{Point}A} - S_{{reference}{point}B}}{S_{{reference}{point}A}}} & (3)\end{matrix}$ $\begin{matrix}{{ratio} = {- \frac{S_{{reference}{Point}A} - S_{{reference}{point}B}}{S_{{reference}{point}A}}}} & (4)\end{matrix}$

where, S_(reference Point A) is download speed at reference point A andS_(reference Point B) is download speed at reference point B. Thereference point A may be a reference point representing an average ormedian of the download speed for the relatively flat portion of thedownload speed curve (e.g., download speed vs. traffic volume or numberof samples). For example, the relative flat portion of the downloadspeed curve may be the curve portion that does not yet bend down for thedownload speed degradation over the traffic volume or the number ofsamples. In particular embodiments, the reference point may be in thenon-busy hours. In particular embodiments, the reference point A may benot in the non-busy hours, rather, in some cases, it may have evenhigher download speed if the non-busy hours are already at the bent-downpart of the download speed curve over the traffic volume. Such referencepoint A could be identified using the hourly data per individual day.Reference point B could be within busy hours or could be in the portionof the curve corresponding to the higher end of the traffic volume. Inparticular embodiments, the system may use the download speed atreference point B as the denominator in Equations 3 and 4.

Average Speeds

In particular embodiments, the average download speed at busy hours (asused in Equations 1 and 2) could be mean, median (i.e., percentile-50 orp50), or mode of the download speed of the busy hours. The downloadspeed of the busy hours may be based on aggregated per hour all daysdownload speed. The aggregated per hour all days download speed couldalso be mean, median, or mode of all the download speed samples. Thereare many combinations that could be used for determining the averagedownload speed of the busy hours. Some examples of the possiblecombinations are described as following:

TABLE 1 Average Speed Description Mean_Median Take mean of all thesamples of the download speed, then take median of the download speed ofbusy hours Mean_Mean Take mean of all the samples of the download speed,then take mean of the download speed of busy hours Median_Median Takemedian of all the samples of the download speed, then take median of thedownload speed of busy hours Median_Mean Take median of all the samplesof the download speed, then take mean of the download speeds of busyhours

Similarly, the average download speed for non-busy hours may also bedetermined based on many combinations similar to that as describedabove.

FIG. 4 illustrates an example congestion metric determining module 206which determines congestion metrics based on different average networkspeeds. The congestion metric determining module 206 may access thedatabases (e.g., the cell database 212, the tile database 214, theregional database 216) and calculate multiple ratios based on thepossible combinations of different average network speeds. For example,for each of the four combinations (e.g., mean_median 2061, mean_mean2062, median_median 2063, median_mean 2064) as listed in Table 1, thecongestion metric determining module 206 may calculate four ratiosincluding ratio_1, ratio_2, ratio_3, and ratio_4. For each of theseratios, either Equation 1 or 2 may be used for the calculation. Then,the congestion metric determining module 206 may use the congestionmetric aggregator 2065 to determine the congestion metric 2066 based onan average or weighted average of one or more of the calculated ratios(e.g., ratio_1, ratio_2, ratio_3, ratio_4). For example, the congestionmetric aggregator 2065 may use the average of these four ratios todetermine a more robust congestion metric 2066, as described in thefollowing equation:

Congestion Metric=average(ratio_1,ratio_2,ratio_3,ratio_4)  (5)

Alternatively, the congestion metric aggregator 2065 may determine thecongestion metric 2066 based on any number of ratios of the four ratios.For example, the congestion metric aggregator 2065 may use an average oftwo ratios to determine the congestion metric as following:

Congestion Metric=average(ratio_3,ratio_4)  (6)

As another example, the congestion metric could be weighted sum of thesefour ratios, and if the weight is zero for a certain ratio, then thatratio is not included in the congestion metric.

In particular embodiments, the system may determine the congestionmetric based on average of multiple ratios (e.g., ratio_3, ratio_4)using Equations 2 and 6. The multiple ratios (e.g., ratio_3, ratio_4)may be calculated using the different type of average download speedsfor busy hours and non-busy hours. For example, the average speed ofbusy hours for the first ratio (e.g., ratio_3) may be calculated basedon median speeds of busy hours which are determined based on medianspeeds of all samples of the download speed. The average speed of thenon-busy hours for the first ratio (e.g., ratio_3) may be calculatedbased on median speeds of non-busy hours which are determined based onmedian speeds of all samples of the download speed. As another example,the average speed of busy hours for the second ratio (e.g., ratio_4) maybe calculated based on mean speeds of busy hours which are determinedbased on median speeds of all samples of the download speed. The averagespeed of non-busy hours for the second ratio (e.g., ratio_4) may becalculated based on mean speeds of non-busy hours which are determinedbased on median speeds of all samples of the download speed. The systemmay compare the congestion metric (e.g., average ratio determined byEquation 6) to a threshold (e.g., 0.18) and detect network congestionwhen the average ratio is above or equal to the threshold.

In particular embodiments, the system may include a network performancemetric database. The network performance metric database may beassociated with the cell database, the tile database 214, and theregional database (polygon database). The system may allow users of thesystem to query the database to obtain the corresponding networkperformance metrics. In particular embodiments, the regional congestionmetric could be also derived in alternative ways, for example, from thetile-level congestion metric, or from the cell-level congestion metric,instead of directly from all the samples within the region. For example,the regional congestion metric can be a median or an average of all thecongestion metrics of all the cells within this region, or a median oran average of all the congestion metrics of all the tiles within thisregion. In this disclosure, congestion metric may be interchangeable tocongestion indicator.

Congestion Detection

Congestion Detection Rules

In particular embodiments, the system may (e.g., using the congestionidentification module) compare the network performance metric (e.g.,congestion metric) to a threshold value to detect network congestionbased on a number rules. For example, if the system detects, for aparticular cell, the congestion metric determined by Equation 1 is belowor equal to a first threshold (e.g., −18%, i.e., −0.18), the system maydetermine that the cell includes a network congestion and may send analert to the operator. As another example, the system may determine, fora particular cell, that the congestion metric determined by Equation 2is above or equal to a second threshold (e.g., 18%, i.e., 0.18), thesystem may mark the cell as having a congestion and send an alert toinform the operator. In particular embodiments, the threshold valuesthat are used to determine network congestions may be positive ornegative values depending on the network performance metrics determinedby different equations. In particular embodiments, the threshold valuethat are used to determine network congestions may be a maximumthreshold value or a minimum threshold value depending on the networkperformance metrics.

Threshold Determination by Machine-learning Model

In particular embodiments, the system may detect network congestionbased on a number of rules and one or more thresholds for the networkperformance metric. The thresholds may be determined by binaryclassification such as a congestion-analysis machine-learning (ML) modeltrained by pre-labeled network congestion data. The pre-labeled networkcongestion data may include information whether there are congestions inthe cells of the network. The data can be manually labeled by engineersin the fields or engineers who are manually monitoring or observing thecells (to see whether the cells have congestions or not). The ML modelmay use supervised learning to learn to how to determine congestionmetric thresholds. The ML model may be trained by network congestionmetrics or other metrics derived from the aggregated data. The ML modelmay determine the congestion metric thresholds based on the supervisedlearning from the pre-labeled data. The ML model may use classificationmethods (e.g., decision trees) to generate the congestion metricthresholds or conditions for categorizing network traffic status intomultiple categories (e.g., congested and non-congested categories). Inparticular embodiments, the ML model may generate conditions (e.g.,multiple thresholds) which can classify network traffic status to morethan two categories and each category may have different levels ofcongestion severity.

In particular embodiments, the ML model may use classification tree fromscikit-learn package. For example, the manually labeled cell data mayinclude at least 400 cells in total (e.g., 315 cells labeled ascongested, 85 cells labeled as not congested). For the top cells thathave the heaviest total traffic per day, more congestions may beexpected to be identified among these cells. The system may be trainedbased on the top 100 cells with an initial threshold of the ratio whichis less than −0.185, which may be adjusted later by the ML model tobalance precision and recall rate. In general, the ML model may havemore accurate threshold when trained by more manually labeled cell data.In particular embodiments, the ML model may use a single feature forranking purpose and robustness and use binary classification todetermine the threshold. The ML model may provide more flexibility forquickly determining the threshold and for extending for more complicatedfeatures or multiple features. In particular embodiments, the thresholdmay also be adjusted manually. In particular embodiments, the system mayuse the threshold of −18% for the network congestion alerts, which isrelatively aggressively recommending improvements for cells due tocongestion alerts.

Alert and Report

Alerts Filtered for Prioritization

In particular embodiments, upon detection of network congestions, thesystem may send one or more congestion alerts to the MNOs reporting thedetected network congestions and the related cells having thesecongestions. The alerts may include all the cells having congestions oronly a part of cells having congestions (e.g., the cells with the mostsevere congestions). The system may rank the cells based on theircongestion severity as indicated by the network performance metrics andsend a ranked list of the cells to the MNOs. Alternatively, theselection of the cells to be reported can be based on geographic region,radio access network technology information (e.g., 2G, 3G, 4G, etc.),carriers, network speeds, number of samples, etc. For example, thesystem may select a certain number of cells with the most severecongestions, or certain percentile of the cells for each operator, eachnetwork generation, or each geographic region, or each country, etc. Inparticular embodiments, the system may use multiple thresholds to filterthe detected congestions. For example, the system may have a firstthreshold of congestion metric (e.g., worst 6 percent) per operator, percountry, per network generation and a second threshold of congestionmetric (e.g., worst 5 percent) per operator, per region, per networkgeneration. These two thresholds may be different and may be applied ontop of each other. For example, the system may apply two filters basedon the two thresholds respectively. The MNOs may have many networkmetrics associated with a large number of cells (e.g., 100 k) to trackand consider for optimizing network performance. The large number ofmetrics could make it very difficult for the MNOs to make optimaldecisions. In particular embodiments, the system may generate networkmodels based on the collected application data and use the models tohelp the MNOs to make better decisions. In particular embodiments, thesystem may filter the generated congestion alerts to generate an endlist to help the MNOs to prioritize the congestion alerts. Thecongestion alerts may be filtered by usage cases (e.g., video streaming,sharing content, messaging, reading news feeds, gaming, etc.), congestedcells, cells with coverage issues, problem devices, costs to fix, etc.In particular embodiments, the ML model may be used for smart filteringto decide which cells should be prioritized for fixing or optimization.In particular embodiments, the filtering methods described herein may beapplied to other metrics different from the congestion metric. Forexample, for cell coverage alerts, the system may filter out the cellswith signal strength among the worst 5 percent per region, per networkgeneration, per operator, and generate alerts based on these cells. Asanother example, the system may filter out the cells and generate alertsbased on the following conditions: (1) the cell's signal strength isamong the worst 5 percent per region, per network generation, peroperator, or (2) the cell's signal strength among the worst 6 percentper country, per network generation, per operator. The cell's signalstrength can be defined based on the median or 50-percentile value ofall the signal strength samples within the corresponding cells, wherethe data may be collected at the social network application level.

In particular embodiments, the system may take into consideration theoccurrence rate (e.g., per weekly basis) of the alerts in a certainperiod of time from temporal perspective when filtering the alerts. Forexample, among all the latest N weeks, if there are M alerts happening,the occurrence rate of the alert can be determined by MIN. The systemmay define a filter based on the occurrence rate of the alerts and athreshold, such as, the occurrence ratio of the alert being above athreshold value (e.g., 0.3, 0.5, etc.).

In particular embodiments, a score may be calculated for an alerted cellbased on the difference of the metric of the alerted cell, comparing toa metric average (e.g., regional average, country average, etc.). Forexample, the score may be calculated using the following equation:

Score=(Metric of the alerted cell—Average metric)/Average metric  (7)

where the metric of the alerted cell can be signal strength, congestionindicator, etc., and the average metric may be a regional average,country average, etc. In particular embodiments, the system maydetermine an importance related weight for an alerted cell based on thetotal number of samples in a certain period of time (e.g., the recentweek or latest N weeks). If a cell has a larger number of samples, thecell may have a greater weight, and the weight value may depend on thetotal number of samples. In particular embodiments, the system mayfilter alerts based on the importance related scores, and/or weightedscores, and the weight may indicate the total number of samples in thealerted cell. Although the filtering above is described in the contextof congestion alerts, the filtering may be applicable to other suitabletypes of alerts.

User Interfaces

FIGS. 5A-F illustrate user interfaces of the system for detectingnetwork congestions and reporting the congestion alerts. As illustratedin FIG. 5A, the user interface 500A of the system may include a map 510showing the areas that have network congestions (e.g., 511, 512, 513,514, 515, 516, 517). Each area that has network congestion may beindicated by a circular indicator and a number within the circularindicator. Each area may be associated one or more cells. Each cell mayinclude one or more cell towers and each cell tower may include one ormore cell sectors. In particular embodiments, the number in the circularindicators may indicate the number of detected congestion alerts in theassociated area. In particular embodiments, the circular indicator maybe displayed with different colors to indicate the severity of thenetwork congestions. The user interface 500A may further include a table520 showing a list of cell alerts indicating the cells with networkcongestions or cells with different network speeds. Each row of thetable 520 may include a cell alert and each column of the table 520 maybe corresponding to a supporting attribute associated with the cellalert (e.g., cell identification 521, location 522, median downloadspeed 523, regional download speed 524, number of samples or requests525, etc.). The user interface 500A may further include a header section530 indicating the current query (e.g., 4G network, lowest downloadspeed by Province, KawaZulu-Natal) and a number buttons (e.g., 531, 532,533). The button 531 may be used for specifying the regions that will bedisplayed in the user interface 500A. The button 532 may be used forclosing the map 510. The buttons 533 may be used to switch betweendifferent display modes (e.g., table view, map view, location view). Thelist of cell alerts in the table 520 may be ranked by one or more of theassociated attributes. For example, the list of cell alerts in 500A mayranked by the number of samples from the highest to lowest. Inparticular embodiments, the list of cell alerts may be ranked by otherattributes, such as, cell identifications 521, locations 522, mediandownload speeds 523, regional download speed 524, congestion indicators590 (shown in FIGS. 5D-F), regional congestion indicators 591 (shown inFIGS. 5D-F), etc. When the user of the system selects a particular cellalert, the user interface 500A may display further detailed informationabout the cell (e.g., from the cell database) and other informationassociated with the cell alert.

As illustrated in FIG. 5B, the user interface 500B may include the table520, a map 540, and a chart 550. Similar to user interface 500A, thetable 520 may be used to display a list of cell alerts for networkcongestions. The map 540 may display a number of locations (e.g., 541,542, 543, 544) associated with network congestion alerts. The userinterface 500B may allow users to define an area of interest 545 in themap 540 and display the associated information (e.g., download speed bytime of day) in a separate chart 550. The user interface 500B may beconfigured through an interactive drop-down menu 552 to display networkperformance information, for example, the median download speed 551(e.g., 7.464 Mbps). The chart 550 may display the network download speedin a bar chart over time of day. In particular embodiments, the userinterface 500B may allow the user to specify other information 553, forexample, latency performance by week as categorized by low, median, highperformance, to be display in other charts (not shown).

As illustrated in FIG. 5C, the user interface 500C may include a map 560displaying a number map tiles (e.g., 561, 562), a number of congestedareas (e.g., 563, 564), a number of locations of interest (e.g., 565,566), etc. In particular embodiments, map tiles may be displayed indifferent colors to indicate the status of the network performance ineach map tile. The congested areas may be indicated by circularindictors each with a number inside indicting the number of congestionalerts or the number of congested cellular towers. The map may be usedto analyze the network performance associated one or more locations ofinterests (e.g., 565, 566). The user interface 500C may further includea header section 568 displaying the percentile of congestion ofdifferent colors associated with map tiles (e.g., 561, 562). The userinterface 500C further include a search bar 567 which may receive querykeywords to search in the map 560. The map 560 may further include anumber buttons 569 to allow users to navigate or zoom in or out the map560. In particular embodiments, the user interface 500C may includeconfiguring panel 580A allowing users to input or configure the queryfor the system. For example, the users of the system may select a queryfrom a number of pre-defined or pre-stored queries via the drop-downmenu 581A to query the system. The users of the system may save thecurrent query using the button 582A. The users of the system may inputor configure the queries by setting download speed thresholds throughthe drop-down menu 583A, setting matching parameters through thedrop-down menu 585A, adding new parameters through button 586A, settingdownload speed ranges by inputting number or scrolling the control barof the control element group 587A, setting the ranges of the numbersamples by inputting number or scrolling the control bar of the controlelement group 588A, or/and applying the configuration to the querythrough the button 589A. The circular indictors each with a numberinside may use the number to indicate the number of alerts which are notlimited to congestion alerts. For example, the number may indicate thenumber of coverage alerts or the number of cells with coverage alerts.As another example, the number may indicate the number of cells with lowdownload speed alerts. In particular embodiments, each type of alertcould be displayed on an individual page. In particular embodiments, ifthere are composite alerts associated with multiple metrics, themultiple types of alerts could be shown on the same page.

As illustrated in FIG. 5D, the user interface 500D may include theconfiguration panel 580B, the table 520, and the charts (e.g., 550, 554,555), etc. The configuration panel 580 may include a number of drop-downmenus (e.g., 581B, 582B, 583B, 584B) and segmented buttons (e.g., 585B)allowing users to configure or select displayed content according todifferent attributes, for example, date, alert type, location, regiontype, network type, etc. The table 520 may have a number of rows andcolumns. Each row of the table 520 may include a cell alert and eachcolumn of the table 520 may be corresponding to a supporting attributeassociated with the cell alert (e.g., cell identification 521, location522, congestion indicator 590, regional congestion indicator 591, numberof samples or requests 525, etc.). The user interface 500D may furtherinclude the chart 550 for displaying download speed by time of day usingbar charts, the chart 555 for displaying the download speed by week, thechart 554 for displaying network latency metric (e.g., round trip time).FIG. 5E illustrates a user interface 500E, which may include theconfiguration panel 580B, the table 520, and a map 593. The map 593 maydisplay an area of interest 593A (e.g., configured through theconfiguration panel 580B) corresponding to the currently displayednetwork congest alerts in the table 520. The map 593 may include anumber of network congestion indicators (e.g., 593B, 593C) correspondingto the network congest alerts in the table 520. FIG. 5F illustrates auser interface 500F displaying an alerted cell 585 being selected in thetable 520 which displays a list of cells with congestions. Once thealerted cell 585 is selected, the user interface 500F may display thecorresponding areas 595A in the map 540. The user interface 500F mayfurther display other information related to the selected cell 595, forexample, cell identification 595B, location 595C, download speed by week595D, etc.

In particular embodiments, the system may assign values to each map tileto provide benchmarking context to the users of the system. The maptiles may be displayed on the map overlapping the cells covered bynetworks. The map may display data as aggregated through and normalizedby regions or locations. In particular embodiments, the system maydisplay information of relative network performance (e.g., comparingwith other carriers) in the areas of interests. In particularembodiments, the system may focus on areas with high number of samplesor requests, which indicate the high demand for the network connectivityin those areas and high likelihood that these area worth furtherinvestments. In particular embodiments, the system may help MNOs toprioritize the network performance metrics to make better decisions fornetwork optimization or upgrading.

Alert Database

In particular embodiments, the system may include a cell alert databasewhich may store all the cell alerts that are generated by the system forparticular queries. The cell alert database may have a standard schemewhich may be consistent across all alerts. The cell alert database mayinclude different types of cell alerts including, for example,congestion alerts, coverage alerts, network speed alerts, etc. The cellalerts may have a number of associated attributes including, forexample, associated cells, associated polygons, associated raking scoresbased on network congestion metrics, etc. The cell alerts reported tothe MNOs may be filtered to include only the high important alerts andmay be ranked by one or more associated attributes. The cell alerts mayfurther include supporting attributes (e.g., root cause analysisresults) to explain why a certain cell alert have a high or alow-ranking score. For example, the supporting attributes may includethe values of the network congestion metrics (e.g., ratios as describedby Equations 1-6) as explanation for the ranking score the cell alerts.As another example, the supporting attributes may include the root causeanalysis results which may indicate that the network performancedegradation is caused by the large number of user requests.

In particular embodiments, the system may include a portal which isassociated with the cell alert database and network metric database. Theportal may provide logging information about cells of interest, forexample, information showing the cell status change over time. Theportal may generate events associated with the cells of interest andstore these events in an event database, which can be used as supportinginputs to the cell alerts. In particular embodiments, the event databasemay be used to train a machine-learning (ML) model which can associatespecific actions (e.g., optimization actions) with the improvements ofthe network performance. The knowledge gained form the event-basedlearning may be used to further improve the system for optimizingnetwork performance. The event data may further include informationrelated to user feedback, such as, flags, thumb up, thumb down, etc.,which may provide useful feedback for the system optimizing networkperformance.

Optimization Recommendations

In particular embodiments, the system may generate recommendations forupgrading the network (e.g., upgrading capacity, moving to 4G/5G, tuningcellular towers, tuning antenna angles, adding more sectors, addingfiber links, shifting investment to right bucket, strengthening fiberbackhaul) based on a priority score determined by the system. Forexample, the system may recommend prioritizing upgradation on the cellshaving the more severe congestion or coverage problems. As anotherexample, the system may recommend shifting investment to optimize theaspects of the network that can be most effective to improve the networkperformance and help MNOs to make better decision for improving thenetwork performance with a limited investment budget. In particularembodiments, the system may perform or recommend optimization (e.g., atplatform level, infrastructure level, device level, or applicationlevel) based on information of the user devices (e.g., data plans,device models, device speeds, operating system versions). For example,the system may filter the user devices by data plans or device modelsand provide customized services to those devices to enable the users thehave best possible user experiences. As another example, the system mayfilter out the user devices (e.g., non-compatible device models) thatcannot support user experiences meeting a minimum quality standard forcertain services (e.g., high-resolution videos, resource-consumingeffects) and may not provide these services to these devices. As anotherexample, the system may filter out locations (e.g., areas, cells,regions) where the network performance cannot provide user experiencemeeting a minimum quality standard and may not provide the non-supportedservices to those locations until the network performance is optimizedor improved. In particular embodiments, the system may generate networkoptimization and plans for long term optimization/planning (e.g.,upgrading network to 4G/5G, adding fibers, strengthening fiberbackhaul), short term optimization/planning (e.g., tune tower antennaangles, balancing demands and capacity), or real timeoptimization/planning (e.g., providing customized services based thestatus of the network and user devices). In particular embodiments, thenetwork performance may be optimized based on one or more performanceparameters including, for example, a load balancing factor, a handover,or a throughput. The network performance may be optimized by aggregatingcommunication networks of different carriers or providers.

In particular embodiments, the optimization recommendation may beperformed using heuristic projection algorithm. In particularembodiments, the optimization recommendation may be performed using amachine-learning (ML) model which is trained based on historical data.When MNOs take actions to fix or optimize network with congestions, therelated data and actions may be stored in a database to train the MLmodel. The ML model may fine tune the future recommendations fordifferent use scenarios based on the training by the historical actiondata or/and the monitored impact of the actions. The ML may predict theoutcome of certain optimization actions and may weigh the importance ofcongestion alerts based on the expected outcome or the possible outcomeof possible optimization actions.

Real-Time Optimization

In particular embodiments, the one or more servers of the computingsystem may send one or more network change requests to one or morecomputing devices. These network change requests may result in acomputing device displaying a message for the user, suggesting to changethe current network, or may interact with the operation system or anapplication of the computing device to automatically change the currentnetwork. This would allow a network to offload some of its users toanother communications network, e.g. another cellular network or abroadband wireless network. The interaction of the network changerequests with the computing device may depend on computing devicesettings, e.g. a user might prohibit automatic network changes or onlyallow certain applications to change the network they use. Such networkchange requests would allow for a real-time optimization of acommunications network, they also could be timed or include point intime information or expiration information to optimize the network in atime-based fashion, e.g. offload computing devices for and duringplanned maintenance windows.

Other Network Performance Metrics

In particular embodiments, the network performance metrics may includecongestion metrics, coverage metrics, or/and network speed metrics. Thecongestion metric for a cell may be based on the average download speedsof busy hours and non-busy hours (e.g., as described in Equations 1 and2). The coverage metric of a cell may be based on the network signalstrength, number of connected towers, or/and signal stability status ofthat cell. The network speed metric of a cell may be based on one ormore networks speed, such as, the highest network speed of a timeperiod, the lowest network speed of a time period, or the averagenetwork speed of a time period (e.g., mean, median, mode). In particularembodiments, the system may suppose that a lower metric value (e.g.,weaker signal strength, lower network speed) indicates worse networkperformance. In particular embodiments, the system may suppose, for somenetwork performance metrics, that a higher metric value indicates worsenetwork performance. The system may compare the network performancemetric to a threshold to determine network congestion or networkcoverage issues. The threshold may be corrected and normalized based onsample volume (e.g., less sample points may need a higher bar fordetecting congestion or coverage issues). The congestion and coverageissues detection may be based on empirical data of the network and arescalable to communication networks of any scales.

In particular embodiments, the system may compare the networkperformance metric (e.g., download speeds, ratios, signal strengths) ofa cell to that of a regional average (e.g., for a region covering orassociated with that cell) to evaluate the network performance for thatcell. In particular embodiments, the system may provide empirical-basedbias corrections on sample values to handle the cases where the numberof samples may be very small or large. The empirical-based biascorrection may be scaled to any level needed by the system. Inparticular embodiments, the system may use a temporal change (e.g., adrop) of one or more network performance metrics for determining networkperformance (e.g., detecting congestion and coverage issues). Forexample, the system may detect a drop of network performance (e.g.,indicated by congestion metric) comparing to the average performanceover a period of time (e.g., 12 weeks). The system may identify acongestion issue or coverage issue when the drop is greater than athreshold. In particular embodiments, the system may model the actualnetwork behaviors, for example, worst performance, peak-performance,peak-to-worst performance comparison, peak-to-peak performancecomparison, etc. In particular embodiments, the system may detectnetwork congestions based on trends (e.g., determined via linearregression) of the network performance.

In particular embodiments, the system may determine a correlationbetween a quality of experience metric and a network demand metric andmay predict a time for a future network traffic congestion in the one ormore geographic areas based on the correlation of the quality ofexperience metric and the network demand metric. In particularembodiments, the system may detect the network congestions bydetermining whether the download speed is degrading (and how much is thedegradation, if any) in an area when the total traffic volume of thenetwork increases or is higher than a threshold in that area. Inparticular embodiments, the system may predict a network congestion inan area based on the collected data or/and historical data of thenetwork in that area or other areas. For example, the system may use amachine-learning model, which is trained by historical data of that areaor many other areas, to predict the network congestion and determinewhen the network congestion would happen.

In particular embodiments, the system may perform time series analysisto determine a temporal domain anomalous event (e.g., a sudden spike ofnetwork traffic of particular day or time windows) related to thenetwork traffic in one or more selected areas covered by thecommunication network. For example, the system may compare a networktraffic volume in the areas to an average network traffic volume ofthese areas or one or more other areas and identify a sudden spike ofnetwork traffic when the network traffic volume is higher than theaverage network traffic volume by a threshold multiplying factor (e.g.,2 times, 3 times, 5 times). In particular embodiments, theidentification of temporal domain anomalous events may be based onnetwork traffic data points per hour per individual day of a number ofdays which may include more information than the network traffic datapoints of per hour all days aggregating a number of days.

Example Method for Congestion Detection

FIG. 6 illustrates an example method for detecting network trafficcongestions in geographical areas covered by a communication network. Inparticular embodiments, the areas may be cell areas in a cellularnetwork or other geographic areas covered by the communication network.At step 610, the system may identify one or more areas covered by thecommunication network and the identified areas may have relative highernetwork traffic volume than other areas in the communication network. Inparticular embodiments, the high network traffic volume areas may beidentified based on a determination that the network traffic volume inthose areas is higher than a pre-determined threshold volume or networktraffic volume of other areas.

At step 620, the system may determine, for each identified area, a firstaverage network speed during busy hours (or busy time periods) of thecommunication network in that area. At step 630, the system maydetermine, for each identified area, a second average network speedduring non-busy hours (or non-busy time periods) of the communicationnetwork in that area. In particular embodiments, the first and secondaverage speeds may be a mean speed, a median speed, or a mode speed ofcorresponding hours or time periods. In particular embodiments, thefirst and second average speeds may be determined based on networktraffic data points per hour per each individual day of a number ofdays. In particular embodiments, to reduce the required computationresources (e.g., CPUs, time, memory), the first and second averagespeeds may be determined based on network traffic data points per hourall days aggregating a number of days. The network traffic data pointsper hour all days may include aggregated network speeds which may be amean speed, a median speed, or a mode speed of corresponding timeperiods (e.g., hours) aggregated from a number of days. In particularembodiments, the first and second average network speeds may bedetermined based on network traffic data points during a number of priortime periods (e.g., minutes, hours, days). In particular embodiments,the busy hours or busy time periods of the communication network in thatarea may be determined based on a determination that the communicationnetwork traffic volume is higher than a threshold volume for busy hoursduring those hours or time periods. The non-busy hours or time periodsmay be determined based on a determination that the communicationnetwork traffic volume is lower than a non-busy hour threshold volumeduring those hours or time periods.

At step 640, the system may determine a network performance metric basedon a ratio of the difference between the first and second averagenetwork speeds to the first or second average network speed. Inparticular embodiments, the network performance metric may be used toindicate the severity of the network traffic congestions. In particularembodiments, the network performance metric may be based on linearregression slopes of network speeds and a majority voting on the slopes.At step 650, the system may determine a threshold network performancemetric using a machine learning (ML) model which may be trained bymanually labeled network traffic congestion data. In particularembodiments, the ML model may include a classification model or a treemodel. In particular embodiments, the threshold network performancemetric may be adjusted by the ML model or manually to balance aprecision metric and a recall rate related to network traffic congestionidentification.

At step 660 the system may compare the determined network performancemetric (e.g., the ratio) to the threshold network performance metricdetermined by the ML model. At step 670, when the network performancemetric is lower than the threshold, the system may identify a networktraffic congestion in that area. In particular embodiments, the systemmay identify network traffic congestion in multiple areas and rank thoseareas by congestion severity as indicated by the network performancemetric. At step 680, the system may send one or more alerts to operatorsof the communication network about the identified network trafficcongestions in one or more areas. The system may also send a list ofareas having the identified network traffic congestions and the list ofareas may be ranked by congestion severity as indicated by the networkperformance metric. When the system does not detect network trafficcongestions, the system may jump to step 610 or 620 to continue tomonitor and analyze the communication network traffic.

In particular embodiments, the system may further optimize networkperformance to increase the capacity of the communication network in theone or more geographic areas having network traffic congestions. Thenetwork performance may be optimized based on one or more performanceparameters including, for example, a load balancing factor, a handover,or a throughput. The network performance may be optimized by aggregatingcommunication networks of different carriers or providers. In particularembodiments, the system may further determine a correlation between anetwork performance degradation and a network traffic status or anetwork traffic change. In particular embodiments, the system maydetermine a correlation between a quality of experience metric and anetwork demand metric and may predict a time for a future networktraffic congestion in the one or more geographic areas based on thecorrelation of the quality of experience metric and the network demandmetric. In particular embodiments, the system may determine quality ofexperience metrics based on a network download speed and network demandmetrics based on a request number of download requests.

Particular embodiments may repeat one or more steps of the method ofFIG. 6 , where appropriate. Although this disclosure describes andillustrates particular steps of the method of FIG. 6 as occurring in aparticular order, this disclosure contemplates any suitable steps of themethod of FIG. 6 occurring in any suitable order. Moreover, althoughthis disclosure describes and illustrates an example method fordetecting network traffic congestions in one or more areas covered by acommunication network including the particular steps of the method ofFIG. 6 , this disclosure contemplates any suitable method for detectingnetwork traffic congestions in one or more areas covered by acommunication network including any suitable steps, which may includeall, some, or none of the steps of the method of FIG. 6 , whereappropriate. Furthermore, although this disclosure describes andillustrates particular components, devices, or systems carrying outparticular steps of the method of FIG. 6 , this disclosure contemplatesany suitable combination of any suitable components, devices, or systemscarrying out any suitable steps of the method of FIG. 6 .

Determining Network Metrics

Quality of Experience (QoE) Metrics

1. QoE Key Quality Indicators (KQIs) or KPIs

In particular embodiments, the system may perform root-cause analysisfor areas with low QoE to identify the causes behind the low QoE inthose areas. Herein, the term “root-cause” or “root cause” may refer toany causes or reasons (at any levels) that lead to or contribute to oneor more low QoE problem in one or more associated areas. In particularembodiments, the system may determine one or more QoE metrics indicatingthe level of QoE as experienced by end users of the communicationnetwork. In particular embodiments, the QoE metrics may include one ormore QoE related key quality indicators (KQIs) or key performanceindicators (KPIs), for example, network speed (e.g., network speed atall hours, network speed at busy hours, network speed at non-busyhours), network latency (e.g., network latency at all hours, networklatency at busy hours, network latency at non-busy hours), packet lossmetric (e.g., packet loss at all hours, packet loss at busy hours,packet loss at non-busy hours), etc. In particular embodiments, thenetwork speed may be download speed at all hours, download speed at busyhours, upload speed at all hours, upload speed at busy hours, connectionspeed at all hours, connection speed at busy hours, network speedfluctuation at all hours, network speed fluctuation at busy hours, etc.In particular embodiments, the network latency may be one-way latency atall hours, one-way latency at busy hours, upstream latency at all hours,upstream latency at busy hours, downstream latency at all hours,downstream latency at busy hours, backhaul latency at all hours,backhaul latency at busy hours, round-trip latency at all hours,round-trip latency at busy hours, etc.

2. QoE Score

In particular embodiments, the QoE metrics may be composite metricsincluding one or more QoE component metrics. For example, the QoE may bemeasured by a composite of QoE related metrics (e.g., KQIs or KPIs),such as, download speed at all hours, download speed at busy hours (orbusy time), network latency at all hours, network latency at busy hours(or busy time), packet loss at all hours, packet loss at busy hours (orbusy time), etc. In particular embodiments, the QoE metrics may includea score of QoE which indicates the satisfactory level of the networkconnection experiences when the end users use applications. The score ofQoE may be determined using a mapping function which may map one or moreQoE related KQIs or KPIs to a QoE score. For example, the QoE score canbe a result of a mapping function based on download speed and networklatency. In particular embodiments, the QoE metrics or QoE componentmetrics may be measured from end user's perspective, for example, fromthe end user's application experience perspective.

3. Low QoE Metrics

In particular embodiments, the system may determine one or more low QoEmetrics which may be used to indicate low levels of QoE as experiencedby end users of the communication network. In particular embodiments,the low QoE metrics may include one or more low QoE components, forexample, low download speed, high network latency, low video viewingquality, video playback freezing, etc. In particular embodiments,instead of being used as QoE metric or QoE component metric, latency canbe used as root-cause metric for potential causes (e.g., for lowdownload speed) and can be further analyzed for next level of causes(e.g., high upstream latency, high downstream latency, etc.). Inparticular embodiments, the low QoE metrics may could also include thetemporal changes of the QoE (e.g., download speed drop, latencyincrease, network speed fluctuation, etc.). In particular embodiments,the temporal changes may be measured week over week, week over 12 weeks,4 weeks over 12 weeks, etc. For example, the temporal changes may be thechange of a metric (e.g., a QoE metric) in current week compared againstthe one or more prior weeks. Through this comparison, the system maydetermine week-over-week changes (e.g., week-over-week download speeddrop, week-over-week latency increase, etc.), the metric in the currentweek compared against the 4 weeks prior to the current week (notincluding the current week), the metric in the current week compared tothe metric in the 12 week prior to the current week, or/and the metricchange comparing the last 4 weeks (i.e., the current week and the 3weeks prior to the current week) against the 12 weeks prior to the last4 weeks, etc.

Root-Cause Metrics

In particular embodiments, the system may perform root-cause analysisfor the detected low QoE problems (e.g., congestion or coverageproblems) associated with one or more areas of interest. In particularembodiments, the system may determine one more root-cause metrics forroot-cause analysis. The root-cause metrics may include one or more KQIsor KPIs that are related to the QoE of interest. For example, theroot-cause metrics may include signal strength as indicated by one ormore signal strength parameters such as reference signal received power(RSRP), received signal strength indicator (RSSI), etc. A low signalstrength level in an area may indicate a coverage problem in that area.The root-cause metrics may also include reference signal receivedquality (RSRQ) which is related to signal interferences. In particularembodiments, the root-cause metrics may include signal strength, signalinterference, upstream latency, downstream latency, latency in the corenetwork, latency in radio access network, congestion indicator,congestion metric, number of samples, number of users, etc. Inparticular embodiments, the congestion indicators or congestion metricsmay be derived from the degradation of the download speed at the busytime and non-busy time of the day, where the busy and non-busy times ofthe day can be derived based on the amount of traffic or number ofsamples of a period of time (e.g., hour, half an hour, etc.). Thepotential root causes and corresponding root-cause metrics may link thelow QoE problems to one or more potential solutions for optimizing thecommunication network and improve the QoE in associated areas.

Data Aggregation for Root-Cause Analysis

As described earlier in this disclosure, in particular embodiments, thesystem may collect and aggregate the network performance data of thecommunication network. For example, the system may collect rawapplication data of end users of the communication network through oneor more APIs. In particular embodiments, the system may collect theapplication data from the application layer based on connecting requestsof end users. Each connecting request may be associated with a timestampwhich may also be recorded with the associated request and applicationdata. In particular embodiments, the collected data may include theidentification of a serving cell which the users' mobile devices areconnected to. The collected data may also include the counters relatedto the total bytes of the information delivered and the time spent fordelivering of this information. The system may use the recorded countersand the time spent for delivering corresponding information to deriveone or more QoE metrics (e.g., download speed, amount of delivered data,etc.).

In particular embodiments, the system may pre-process, clean andaggregate the collected data for determining one or more QoE metrics androot-cause metrics. For example, the system may determine the downloadspeed based on the collected counters data and the time spent fordelivering corresponding information. The system may make the cellidentification unique by concatenating certain information (e.g., airinterface technology type). As another example, the system may aggregatethe collected data per cell bases by aggregating all the requests of theapplications (e.g., mobile applications) from all the devices associatedwith a particular cell. In particular embodiments, the system mayaggregate collected data on the temporal dimension, for example, perhour for each individual day, per hour for a duration of N days (7 days,28 days, or any suitable number of days). In particular embodiments, thesystem may calculate the number of samples associated with theaggregated data unit. For example, the number of samples may beassociated with aggregated data unit every hour for each individual day.As another example, the number of samples may be associated withaggregated data unit every hour for a duration of N days. The number ofsamples may be used as indication of traffic amount or connection demandlevel. In particular embodiments, the system may calculate the totalamount of bits delivered (e.g., aggregated for each hour for eachindividual day or aggregated for each hour for a duration of N days) asindication of the traffic amount or demand level instead of the numberof samples. In particular embodiments, the system may use both thenumber of samples and the total amount of bits delivered as theindication of the traffic amount or demand level.

Low QoE Determination

Low QoE Criteria

In particular embodiments, the system may use a set of criteria todetermine low QoE in one or more areas (e.g., cells, tiles, regions).For example, the set of criteria may include one or more thresholds. Thethreshold may be an absolute value threshold, a percentage threshold(e.g., worst 3 percent, worst 5 percent, worst 10 percent), a percentilethreshold (e.g., worst 97 percentile, worst 95 percentile, worst 90percentile), etc. Herein, an area having QoE among worst X percentilemay mean that that area has QoE worse than X percent of all the areas ofinterest. For example, an area may be referred as having QoE of worst 97percentile when the area has worst QoE than 97% of all the areas ofinterest (e.g., all areas of the network, all monitored areas, all areasof interest). In particular embodiments, the system may determine thatan area has low QoE based on a determination that at least one QoEmetric associated with that area meets a low QoE criteria (e.g., amongworst 90 percentile or worst 95 percentile). In particular embodiments,the thresholds to determine low QoE may be learnt via clustering oranomaly detection.

In particular embodiments, the area of interest may be the areaincluding a number of cells, tiles, regions, etc. In particularembodiments, the area of interest may be the area including a group ofcells satisfying certain conditions, or in certain categories. Forexample, the group of cells may be a group of cells operating at certainfrequency band (e.g., 800 MHz band, 2.6 GHz band, etc.), a group ofcells operating at certain frequency band and with certain bandwidth(e.g., a group of cells at 2.6 GHz band and with bandwidth of 5 MHz, agroup of cells at 2.6 GHz band and with bandwidth of 3 MHz, etc.), agroup of cells of certain network generation or network connection type(e.g., 2G, 3G, 4G, 5G, Wi-Fi, etc.), a group of cells operated bycertain mobile network operator, a group of cells satisfying certaincombination of conditions (e.g., frequency band, operator, networkgeneration, a postal code, a county, etc.).

In particular embodiments, the thresholds may be determined usingmachine learning (ML) algorithms. When the QoE is measured by acomposite QoE metric (e.g., including multiple QoE component metricssuch as download speed at all hours, download speed at busy hours,network latency at all hours, network latency at busy hours), eachindividual QoE component metric may have its own threshold, and the lowQoE may be determined if any of the individual component metric of theQoE meets the low QoE criteria (e.g., below the correspondingthresholds). In particular embodiments, as an alternative, all theindividual component metrics of the composite QoE metric may have a samethreshold (e.g., worst 90 percentile or worst 95 percentile) and the lowQoE may be determined if a combination of the QoE component metricsmeets the low QoE criteria (e.g., below the threshold). In particularembodiments, as another alternative, a QoE score may be determined basedon multiple QoE component metrics and a mapping function. For example,the QoE score may be a weighted sum of multiple QoE component metricswhere the weight may indicate the importance of each component metricfor QoE. The QoE score may be compared to a QoE score threshold, and theQoE may be determined as low QoE if the score is worse than the low QoEthreshold score.

In particular embodiments, the system may determine the low QoEthreshold values based on the total number of cells that are beingmonitored. For example, if the total number of cells being monitored isless than a first total number threshold (e.g., 10 k), the system mayuse a 90-percentile threshold to include more low QoE cells. When thetotal number of cells being monitored is equal to or higher than thetotal number threshold, the system may use a 95-percentile threshold ora 98-percentile threshold to include less low QoE cells. In particularembodiments, the system may use a global threshold per carrier percountry and identify low QoE cells when one or more QoE metrics of thesecells meet the global threshold (even if they do not meet the percentilethreshold criteria). In particular embodiments, the system may determineperform root-cause analysis and generate optimization for cells withhigh demand and network congestion even if these cells have relativegood QoE (e.g., not meeting the low QoE criteria). In particularembodiments, the system may limit the identified low QoE cells to bewithin 1000 cells.

Determination Process

In particular embodiments, the system may identify one or more areas(e.g., cells, tiles, regions) with low QoE by detecting low QoE problemsin these areas. The low QoE problems may be detected based on one ormore QoE metrics. In particular embodiments, the system may calculate apercentile value for each QoE metric of each area. The percentile valuemay indicate that, for this particular QoE metric, the associated areais worse than how much percentage of areas among the group of the areasbeing monitored. For example, the system may determine for downloadspeed metric that the corresponding percentile value is 0.90 (with theworst download being 1 and the best download speed being 0). Thispercentile value of 0.90 may indicate that the associated areas has adownload speed slower than 85% of areas among all areas of interestbeing monitored. After the percentile value of each QoE metric of eacharea has been determined, the system may apply the set of criteria(e.g., thresholds) for filtering the QoE metrics to determine the lowQoE areas. For example, with a 95-percentile threshold for downloadspeed, the system may determine any area with 0.95 or higher percentilevalue for download speed as the low QoE areas, which have slowerdownload speed than at least 95% of the areas of interest.

Low QoE Examples

As an example and not by way of limitation, the system may determine theQoE percentile for each cell within a group of cells of interest whichare monitored. The QoE percentile may be determined based on anindividual QoE metric (e.g., download speed, download speed at busyhours, network latency) or a composite QoE metric (e.g., QoE score basedon one or more QoE component metrics). Then, the system may identify andmark the cells with worst QoE (e.g., indicated by QoE scores or one ormore QoE metrics) as the low QoE cells in the group of cells accordingto a set of criteria. For example, the system may identify and markthose cells which have one or more QoE metrics (or each of all the QoEcomponent metrics) within the worst percent threshold (e.g., 3%, 5%,10%, etc.) as the low QoE cells. The cell being marked as low QoE cellsmay be among all the cells of interest that are monitored, for example,all the cells in a region, all the cells in a country, all the cells ofa particular network generation (e.g., 2G, 3G, 4G) of a particularcarrier, all the cells of particular network, etc.

As another example, if the download speed of a cell is worse than thelow QoE percentile threshold (e.g., worst 97 percentile, worst 95percentile, worst 90 percentile), or in other words, if the cell'sdownload speed is within the worst percent threshold (e.g., 3%, 5%, 10%,etc.) of all the cells of interest, this cell may be identified andmarked as a cell with low QoE. The download speed may be the median ofthe download speed of all the data samples associated with this cell. Asanother example, if the download speed at the busy time of a cell iswithin the worst percent threshold (e.g., 3%, 5%, 10%, etc.) of all thecells of interest, this cell may be identified and marked as a cell withlow QoE. As another example, if the network latency of a cell is withinthe worst percent threshold (e.g., 3%, 5%, 10%, etc.) of all the cellsof interest, this cell may be identified and marked as a cell with lowQoE.

Low QoE Alerts

Generate Alerts

In particular embodiments, after the low QoE problems have beendetected, the system may generate low QoE alerts for these areas. Forexample, the system may generate low download speed alerts, downloadspeed drop alerts, low signal strength alerts, network congestionalerts, etc. In particular embodiments, the system may determine the QoEin one or more areas based on one or more QoE metrics or/and therelationship among multiple QoE metrics to generate the low QoE alerts.In particular embodiments, the system may identify the correlations andrelationships between two or more low QoE alerts (each of which may bebased on one or more individual network metrics) to provide engineeringdirections (e.g., improving network coverage, improving networkcapacity) for network optimization.

Priority

In particular embodiments, the system may determine a priority score foreach low QoE alert generated by the system. The priority score may bedetermined based on a number factors including, for example, theintention of MNOs, number of samples, predicted return of investments,the urgency of low QoE problems, etc. Then system may use a weighted sumof QoE metrics based on these factors to determine the priority score.For example, the system may predict that the return of investment basedon the total traffic bits (e.g., total traffic=number ofsamples×download speed per sample×time used). Then, the system maydetermine the priority score value based on predicted return ofinvestments, the predicted improved, increased, gained, or recoveredtotal traffic by certain optimization actions (e.g., upgrading cell,adding new cells or traffic offloading) and the cost of theseoptimization actions. In particular embodiments, the system maydetermine the priority score based on the predicted reduced churningrate due to improved QoE and coverage, predicted increase in revenue,etc. In particular embodiments, the system may determine the priorityscore of low QoE alert using the following equation:

Score=Number of samples×(busy hours downlaod speed+downloadspeed)/2  (7)

where the number of samples, the busy hours download speed, and thedownload speed are normalized parameters within the range of [0, 1].

Root Cause Determination

Percentile Thresholds

In particular embodiments, the system may determine a set of criteriafor filtering root-cause metrics. In particular embodiments, thecriteria for root-cause metrics may be softer or looser than thecriteria for determining low QoE to allow potential root causes of lowQoE to be identified without missing the true causes. The loosercriterion on the root causes at this stage may allow more potential rootcauses to be included to enable a further or deeper root cause analysisin which the root causes could be selected more accurately in a laterrefining stage. For example, if the potential cause is related to a lowsignal strength level, the system may further identify, in a deeperroot-cause analysis process, whether the low signal strength is due tolow transmit power, high path loss, low antenna gain, high interference,or/and any other factors. In particular embodiments, the system maydetermine a set of optimal criteria for filtering root-cause metrics. Ifthe criterion for the root cause is too strict at the first stage, itmay result in missing out potential root causes. But the criterion istoo loose, it may result in generating more causes or ambiguity onidentifying which is the major cause or leading root cause. Inparticular embodiments, the optimal criterion may be determined bytesting out a number of candidate thresholds (e.g., worst 5%, worst 10%,worst 15%, worst 20%, worst 25%, worst 30%, etc.). For example, thesystem may compare the determined causes under different criterion tothe true causes (e.g., manually identified by engineers in the fields,pre-known root causes) to determine criteria precision, recall, falsepositive, false negative, etc.

In particular embodiments, the system may determine a percentile valuefor each potential root-cause metric of each area The percentile valuemay indicate that, for this particular root-cause metric, the associatedarea is worse than how much percentage of areas among the group of theareas being monitored (which is the same group of areas for determininglow QoE and may include all the areas of the group regardless the levelsof QoE). As an example and not by way of limitation, the system maydetermine that, for signal strength metric associated with a cell, thecorresponding percentile value is 0.85 (with the worst signal strengthbeing 1 and the best signal strength being 0). This may indicate thatthe associated cell has signal strength worse than 85% of cells amongthe group of cells of interest.

After the percentile values for both QoE metrics and root-cause metricsare determined, the system may list the percentile values of each areafor both QoE metrics and root-cause metrics within the group of areas(e.g., all the areas within a region, such as a county, an area with thesame zip code, etc.), respectively. Then, the system may determine rootcauses for the low QoE areas based on the percentile values of allroot-cause metrics of all cells of interest and the criteria forroot-cause metrics. In particular embodiments, the system may filter thepercentile values of the root-cause metrics using one or more percentilethresholds. For example, the system may use an 80-percentile thresholdto filter all root-cause metrics. The root-cause metrics havingpercentile values less than 80 percentile may be filtered out and theroot-cause metrics with 80 or higher percentile may remain after thebeing filtered. The remaining root-cause metrics may be identified asthe indication of corresponding root causes for associated areas.

In particular embodiments, the system may use network speed, networkspeed at busy hours, and network latency as the QoE metrics fordetermining the low QoE cells of the cellular network. The system mayuse the signal strength, congestion metric, and number of samples as theroot-cause metrics for determining the root causes for the low QoEcells. In particular embodiments, the system may determine that a cellhas a low QoE if either of the three QoE metrics (e.g., download speed,download speed at busy hours, network latency) is among the worst90-percentile (worst 10%). The percentile threshold for determining thelow QoE cells may be determined and modified based on the requirementfor low QoE. For example, the system may include less cells as low QoEcells by tightening the threshold of low QoE (e.g., worst 3%, worst 5%).In particular embodiments, for determining the potential root causes forlow QoE, the system may mark the root-cause metrics within the worst80-percentile as indication of potential causes. The 80-percentilethreshold for filtering the root-cause metrics is looser than the90-percentile for filtering the low QoE metrics, which may allow thesystem to include more potential root causes and avoid missing the truecauses.

Number of Samples and Occurrence Frequency

In particular embodiments, the system may use additional filters tofilter out cells which have the number of samples below a sample-numberthreshold (e.g., 100). A small number of samples may indicate a lowdemand, and therefore a low priority for optimization of the associatedcell. For example, the system may identify a group cells having low QoEand low number of samples (e.g., below the sample-number threshold)during the low QoE determination process. The system may filter thatgroup of cells out and exclude these cells from the later process ofdetermining root causes and generating optimization recommendationbecause the low demand in these cells may indicate a low priority foroptimization. In particular embodiments, the system may also use theadditional filters to filter out cell alerts (e.g., low download speedalerts, low signal strength alerts, congestion alerts, etc.) if theoccurrence frequency of those cell alerts is below a threshold (e.g.,50%) during a period of time (e.g., the past 6 weeks including thecurrent week). A low occurrence frequency of these alerts may indicate arelative low level of severity of the QoE problems and a low priorityfor optimizing the associated cell.

Determination Process

FIGS. 7A-C illustrate an example process for determining causes for anumber of low QoE cells of a cellular network. As an example and not byway of limitation, the system may collect and aggregate the applicationdata from end users of the cellular network. The system may use networkspeed, network speed at busy hours, and network latency as the QoEmetrics for determining the low QoE cells of the cellular network. Thesystem may use the signal strength, congestion metric, and number ofsamples as the root-cause metrics for determining the root causes forthe low QoE cells. The system may determine the values of all these QoEmetrics and root-cause metrics based on the collected and aggregatedapplication data for a group of cells among all the cells of interest ofthe cellular network, as shown in the table in FIG. 7A. The first columnon the left of the table includes the cell ID associated with each cellof the group of cells. Each row of the table includes the values of theQoE metrics and root-cause metrics corresponding to a particular cell ofthe group of cells. Each column of the table (except the first column onleft) is corresponding to a particular QoE metric (e.g., download speed,download speed at busy hour, latency) or a root-cause metric (e.g.,signal strength, congestion metric, number of samples. The downloadspeed, latency, and signal strength may be measured in units of Mbps orKbps, milli-second or second, and dBm or mW, respectively. Thecongestion metric may be measured using percentage number among allcells of interest. The cells of interest being monitored may be all thecells within a region, such as a county, an area with the same zip code,a city, a province, a state, etc.

After the values of the QoE metrics and root-cause metrics have beendetermined, the system may calculate a percentile value for each QoEmetric and each root-cause metric of each cell. The percentile value mayindicate that, for this particular QoE metric or root-cause metric, theassociated area is worse than how much percentage of cells among the allof cells of interest being monitored. FIG. 7B shows the percentilevalues corresponding the metric values as shown in FIG. 7A. As anexample, the cell 1 in the first row of the table has a percentile valueof 1 for latency metric, which indicates that this cell has the worstlatency among all the cell of interest being monitored. As anotherexample, the cell 1 in the first row of the table has a percentile valueabout 0.21 for signal strength, which indicate that the signal strengthof this cell is worse than 21% of all the cell of interest beingmonitored.

After the percentile values of the QoE metrics and root-cause metricsbeing determined, the system may apply a first set of criteria on QoEmetrics to determine the low QoE cells. For example, the system may usea 90-percentile threshold to filter all the QoE metrics. The percentilevalues below 90 may be filtered out and the percentile values equal toor above 90 may remain after the filtering. FIG. 7C shows the QoEpercentile filter results in the left part of the table. The low QoEcells may be identified and selected from all the cells of interestbeing monitored based on the filtering results. For example, the cellsshown in FIG. 7C may have at least one QoE metric having a percentilevalue being above the 90-percentile threshold. In particularembodiments, the system may identify a cell as low QoE cell when thatcell has at least one QoE metric meeting the low QoE criteria (e.g., the90-percentile threshold). In particular embodiments, the system mayidentify a cell as low QoE cell when a combination of QoE metrics (e.g.,including two or more QoE metrics) all meets the low QoE criteria (e.g.,having their percentile values above the 90-percentile threshold). Inparticular embodiments, the system may use one threshold for all the QoEmetrics. In particular embodiments, the system may use differentthresholds for different QoE metrics when determining the low QoE cells.

After the low QoE cells have been identified, the system may apply asecond set of criteria to identify the root causes for low QoE problemsin the identified low QoE cells. For example, the system may use an80-percentile threshold to filter the root-cause metrics. The root-causemetrics with percentile values below 80 may be filtered out and theroot-cause metrics with percentile values equal to or above 80 mayremain after the filtering. FIG. 7C shows the root-cause metricsfiltering results in the right part of the table. Each root-cause metricthat remains after filtering may be used by the system as an indicationof a cause of the low QoE problem of the associated cell. For example,the cell 1 in the first row of the table may have the congestion metric,which has a value about 0.99 being above the 90-percentile threshold, asan indication that the low QoE in this cell may be caused by networkcongestion (rather than signal strength or high demand since these tworoot-cause metrics are filtered out by the 80-percentile threshold). Inparticular embodiments, the system may use one threshold for all theroot-cause metrics. In particular embodiments, the system may usedifferent thresholds for different root-cause metrics when determiningthe causes for the low QoE.

Example Low QoE Cells

In particular embodiments, the system may identify that a cell has lowQoE based on a determination that at least one QoE metric of that cellmeet the low QoE criteria. For example, in the table of FIG. 7C, theeight low QoE cells (with cell IDs of 1, 2, 3, 4, 7, 17, 28, 37) haveall three QoE metrics (e.g., download speed, download speed at busyhours, latency) being above the 90-percentile threshold. The low QoEcell 40 has two QoE metrics (e.g., download speed, latency) being abovethe 90-percentile threshold. The low QoE cell 44 has one QoE metric ofdownload speed at busy hours being above the 90-percentile threshold. Inparticular embodiments, the system may identify low QoE cells based on apattern, a correlation, or a combination associated with two or more QoEmetrics. For example, the system may compare the download speed (at allhours) to the download speed at busy hours and determine the downloadspeed drop during busy hours based on the comparison. The system maydetermine that a cell has low QoE when the download speed drop exceeds adownload speed drop threshold. As another example, the system maydetermine that a cell has low QoE based on a determination that the cellhas both download speed and network latency meeting the correspondinglow QoE criteria.

Example Root Causes

In particular embodiments, the system may filter the root-cause metricsusing an 80-percentile threshold to determine the causes of the low QoEof the corresponding cells, as shown in FIG. 7C. For example, the cells1 and 2 have the congestion metric being above the 80-percentilethreshold and the system may determine that the causes for the low QoEin these two cells are related to network congestions. As anotherexample, the cells 3 and 4 have the congestion metric and the number ofsampling being above the 80-percentile threshold. The system maydetermine that the low QoE of these two cells are caused by networkcongestion and high connection demand. As another example, the cell 17and 44 have the signal strength and congestion metric being above the80-percentile threshold. The system may determine that the low QoE inthese two areas are caused by weak signal strength (network coverageproblem) and network congestion. As another example, the cell 28 onlyhas the number of samples being above the 80-percentile threshold. Thesystem may determine that the low QoE in this cell is caused by highdemand. As another example, the cell 37 has all three root-cause metricsbeing above the 80-percentile threshold. The system may determine thatthe low QoE in this cell is caused by a combination of weak signalstrength, network congestion, and high connection demand. As anotherexample, the cell 40 has the signal strength and the number of samplesbeing above the 80-percentile threshold. The system may determine thatthe low QoE in this cell may be caused by a combination of weak signalstrength and high connection demand.

As another example, the cell 7 has all three root-cause metrics beingbelow the 80-percentile threshold. The system may determine that the lowQoE in this cell is not caused by any of the three causes of signalstrength, network congestion, or high connection demand. Furtherroot-cause analysis (e.g., using different group of root-cause metrics,using different thresholds values) may be needed to determine the causeof the low QoE in this area. In particular embodiments, when no causesare identified for a low QoE cell, the system may generate a reportlisting the root causes that have been considered but eventual excluded.By excluding the wrong causes, the system may guide the networkengineering to the correct direction for optimization and avoid tackingunnecessary optimization actions.

Anomaly Events Root Causes

Determination Process

In particular embodiments, the system may perform root-cause analysisfor particular low QoE events, for example, network anomaly, networklatency, low video QoE, congestion alerts, video play back freezing,etc. The system may first collect, pre-process, and aggregate theapplication data for the areas of interests. Then, the system maydetermine the metrics for the particular low QoE events (e.g., anomaly,latency, low video QoE, congestion alert, etc.). For example, for anetwork latency event, the system may upstream latency and downstreamlatency as the root-cause metrics for determining causes for networklatency event. As another example, for a low video QoE event, the systemmay use video quality score, download speed, network latency, signalstrength and congestion indictor as the root-cause metrics to determinethe causes of the low video QoE. The system may use a first set ofcriteria on one or more QoE metrics to determine/detect the low QoEevent and use a second set of criteria on the root-cause metrics todetermine the causes. After that, the system may generate report for thelow QoE event with identified causes and generate a solutionrecommendation for each cell affected by the low QoE event. Inparticular embodiments, the first or/and second set of criteria may eachinclude one or more thresholds for corresponding metrics. The thresholdsmay be set up by users of the root-cause analysis system or may belearnt by machine-learning model trained by pre-labeled data whichinclude cell data with labeled low QoE events and corresponding rootcauses. The labeled data may be generated by, for example, engineers inthe fields, engineers who are manually monitoring or observing the cell(e.g., to see whether the cells have congestions or not), or engineerswho monitor the end user experiences of application. The machinelearning may be supervised learning based on one or more featuresderived from the aggregated data, KQIs, KPIs, etc. The machine learningmay use classification methods such as decision tree to generate thethresholds, or use the division or partition conditions for each class(e.g., each low QoE event, each root cause).

Example: Anomaly Video Quality

As examples and not by way of limitation, Table 2 shows a number ofcells (e.g., cell 1-4) having network latency which may be identified bythe system based on the worst 5-percent threshold on the network latency(e.g., in ms).

TABLE 2 Cell Latency Upstream Downstream Root causes for Id (QoE)Latency Latency high latency 1 250 ms/ 200 ms/  50 ms/ upstream worst 2%worst 1% worst 50% 2 300 ms/  60 ms/ 240 ms/ downstream worst 1% worst50% worst 1% 3 320 ms/ 150 ms/ 170 ms/ Upstream and worst 1% worst 2%worst 3% downstream 4 200 ms/  80 ms/ 120 ms/ Not identified worst 5%worst 40% worst 35%The cells 1-4 in Table 2 all have network latency time values beingamong the worst 5% of all the cells of interest. The system may use theupstream latency and the downstream latency as the root-cause metrics tofor determining the causes. For example, for the cell 1, the upstreamlatency is 20 ms which is among the worst 1% of all the cells ofinterest while the downstream latency is 50 ms which is among the worst50% of all the cells of interest. The system may determine that the lowvideo QoE in cell 1 is caused by the upstream latency by applying a 20%threshold on upstream and downstream latency. As another example, forthe cell 2, the upstream latency is 60 ms which is among the worst 50%of all the cells of interest while the downstream latency is 240 mswhich is among the worst 1% of all the cells of interest. The system maydetermine that the low video QoE in cell 2 is caused by the downstreamlatency applying a 20% threshold on upstream and downstream latency. Asanother example, for the cell 3, the upstream latency is 150 ms which isamong the worst 2% of all the cells of interest while the downstreamlatency is 170 ms which is among the worst 3% of all the cells ofinterest. The system may determine that the low video QoE in cell 3 iscaused by the upstream latency and the downstream latency by applying a20% threshold on upstream and downstream latency. As another example,for the cell 4, the upstream latency is 80 ms which is among the worst40% of all the cells of interest while the downstream latency is 120 mswhich is among the worst 35% of all the cells of interest. The systemmay determine that the low video QoE in cell 4 is not caused by theupstream latency or the downstream latency by applying a 20% threshold.

As examples and not by way of limitation, Table 3 shows a number ofcells (e.g., cell 5-8) having low video QoE which may be identified bythe system based on the worst 5-percent threshold on the video qualityscore (e.g., 0-100).

TABLE 3 QoE: Video Root quality Video causes for Cell score downloadSignal Congestion low video Id (0-100) speed Latency strength indicatorquality 5 10/worst 2%  40 kbps/worst  50 ms/worst −100 dbm/ 0.1/worstDownload 1% 50% worst 80% speed 25% 6  5/worst 1% 1 Mbps/worst 240ms/worst −100 dbm/ 0.1/worst Latency 50% 1% worst 70% 25% 7 20/worst 5% 80 kbps/worst 170 ms/worst Download 2% 3% speed, Congestion 8 15/worst3% 100 kpbs/worst 120 ms/worst −130 dbm/ Download 2% 35% worst speed, 1% Signal strength

The cells 1-4 in Table 3 all have video quality score values being amongthe worst 5% of all the cells of interest. The system may use one ormore of the video download speed, network latency, signal strength, andcongestion indicator as the root-cause metrics to for determining thecauses of the low video QoE in these cells. For example, for the cell 5,the values of the root-cause metrics of video download speed, latency,signal strength, and congestion indicator are 40 kbps (worst 1%), 50 ms(worst 50%), −110 dBm (worst 25%), 0.1 (worst 80%), respectively. Thesystem may determine that the low video QoE in cell 5 is caused by thedownload speed by applying a 20% threshold on the correspondingroot-cause metrics (the download speed is among the worst 1% which isbelow the 20% threshold and all other three metrics are above the 20%threshold). As another example, for the cell 6, the values of theroot-cause metrics of video download speed, latency, signal strength,and congestion indicator are 1 Mbps (worst 50%), 240 ms (worst 1%), −110dBm (worst 25%), 0.1 (worst 70%), respectively. The system may determinethat the low video QoE in cell 6 is caused by the network latency byapplying a 20% threshold on the corresponding root-cause metrics (thenetwork latency is among the worst 1% which is below the 20% thresholdand all other three metrics are above the 20% threshold). As anotherexample, for the cell 7, the values of the root-cause metrics of videodownload speed and latency are 80 kbps (worst 2%) and 170 ms (worst 3%),respectively. The system may determine that the low video QoE in cell 7is caused by the download speed and network latency by applying a 20%threshold on the corresponding root-cause metrics (both download speedand network latency are below the 20% threshold). As another example,for the cell 8, the values of the root-cause metrics of video downloadspeed, latency and signal strength are 100 kbps (worst 2%), 120 ms(worst 35%), and −130 dBm (worst 1%), respectively. The system maydetermine that the low video QoE in cell 8 is caused by the downloadspeed and signal strength by applying a 20% threshold on thecorresponding root-cause metrics (the download speed and signal strengthare below the 20% threshold and the network latency is above the 20%threshold).

As examples and not by way of limitation, Table 4 shows a number ofcells (e.g., cell 1-4) having download speed issues, which may beidentified by the system based on the worst 5-percent threshold on thedownload speed (e.g., in Kbps).

TABLE 4 RSRP RSRQ Root Low (reference (reference causes download signalsignal for low Cell speed received received download Id (QoE) power)quality) speed 1 100 Kbps/ −135 dbm/ −10 dB/ RSRP worst 2% worst 1%worst 50% (coverage) 2  50 Kbps/  −80 dbm/ −19 dB/ RSRQ worst 1% worst50% worst 1% (interference) 3  40 Kbps/ −130 dbm/ −18 dB/ RSRP and RSRQworst 1% worst 2% worst 3% (coverage and interference) 4 300 Kbps/  −90dbm/ −13 B/ Not identified worst 5% worst 40% worst 35%

The cells corresponding to the cell identifiers (Ids) 1-4 in Table 4 allhave download speed values being among the worst 5% of all the cells ofinterest. The system may use the RSRP or/and RSRQ as the root-causemetrics to for determining the causes. For example, for the cell 1, theRSRP may be determined as the cause because it is within the worst 20%.The RSRP may indicate a coverage issue and the treatment solutions maybe related to transmitting power setting (e.g., increasing the transmitpower of the cell to increase RSRP can be higher). As another example,for cell 2, the RSRQ may be determined as the cause because it is withinthe worst 20%. This may be due to the interference issue which makesRSRQ bad. The treatment solution could be reducing the interference(e.g., reducing transmit power of neighboring cells in the samefrequency, or using some advanced interference mitigation method). Asyet another example, for cell 3, the system may determine both RSRP andRSRQ as the root causes. As yet another example, for cell 4, the systemmay identify no root cause for this cell using current root-causemetrics.

User Interfaces

Low QoE Report

In particular embodiments, the system may generate a report includingall or a part of the cells which have low QoE. For example, the reportmay include the cells with lowest QoE (which is part of the cells withlow QoE). As another example, the selection of the cell to be includedin the report may be per geographic region, per country, per radioaccess network technology generation (e.g., 2G, 3G, 4G, etc.), percarrier (mobile network operator (MNO)), etc. As another example, thesystem may select a certain number of cells with the lowest QoE for eachMNO, each network generation, each geographic region, or each country,etc.

Root-Cause Analysis UI

FIGS. 8A-B illustrate example user interfaces (e.g., 800A, 800B) forconfiguring the root cause analysis and displaying the results. Asillustrated in FIG. 8A, the user interface 800A of the system mayinclude a map 820 showing a region of interest 821 which include anumber of the areas (e.g., 822, 823, 824, 825) with low QoE alerts. Eacharea that has low QoE alert may be indicated by a circular indicator anda number within the circular indicator. Each area may be associated oneor more cells. Each cell may include one or more cell towers and eachcell tower may include one or more cell sectors. In particularembodiments, the number in the circular indicators may indicate thenumber of cells or the number of low QoE alerts in the associated area.In particular embodiments, the circular indicator may be displayed withdifferent colors to indicate the severity of the network congestions.The user interface 800A may further include a table 810 showing a listof cells with different QoE metrics and root-cause metrics. Each row ofthe table 810 may include a cell and each column of the table 810 may becorresponding to an associated attribute, a QoE metric, or a root-causemetric, for example, cell identification 811, location 812, downloadspeed 813, download speed at busy hours 814, latency 815, signalstrength 816, congestion indicator 817, number of samples or requests818, etc. In particular embodiments, the user interface 800A may includea panel 809 for user to configure what will be analyzed and displayed.Then panel 809 may include a number of drop down menus for configuringthe date 801, the alert type 802 (e.g., low QoE with root causes), theregion type 803, the location 804, the network type 805 (e.g., 2G, 3G,4G), etc.

As illustrated in FIG. 8B, the user interface 800B of the system mayinclude a map 830 showing a particular cell (e.g., cell with ID559734_15) with low QoE problem. The user interfaces 800B may allow auser of the system to select a particular cell from table 810. The userinterface 800B may display the selected cell in the map 830 displayingthe area 831 covered by the selected cell. The user interface 800B mayinclude a display area 832 to display a number of attributes associatedwith the selected cell, for example, network type, cell ID, mobilecountry code, mobile network code, location, (e.g., latitude andlongitude), range, average download speed by week, etc. In particularembodiments, the user interfaces 800A-B of the system may use elements(e.g., dots, circles) with different colors to illustrate the levelseverity of the associated metrics. For example, a darker color mayindicate a higher level of severity and a lighter color may indicate alower level of severity. In particular embodiments, the user interfacemay hide or dim the QoE metrics that haven been identified as not beingassociated to low QoE and the root-cause metrics that have been excludedfrom the identified causes for low QoE.

Low QoE Solution Recommendation

In particular embodiments, the system may generate solutionrecommendations or optimization recommendations to solve the low QoEproblems and improve the QoE. The solution or optimizationrecommendations may link the QoE as experienced by end users to thenetwork engineering based on the identified root causes of the low QoEproblems. In particular embodiments, the system may determine and listthe potential solutions based on the respective patterns or combinationsof multiple root causes. In particular embodiments, the system maydetermine the optimization recommendations for cells with low QoE basedon the identified root causes and connection demand in these cells(e.g., number of samples, number of connection requests, number ofusers, number of connected devices, traffic amount, etc.). The systemmay prioritize the cells (e.g., based on the priority score) with highconnection demands for generating optimization recommendation and mayrecommend less or no optimization for cells with low connection demands.

Coverage Issue

As an example and not by way of limitation, if QoE is low and if signalstrength is bad in a cell, the system may determine that coverage issueshould be a direction to optimize this cell. The solution recommendationmay be generated only for cells with relative large number of samples(e.g., being above a sample-number threshold). If the demand is higherthan a demand threshold in this cell as indicated by the large numbersamples, the system may recommend the coverage enhancement (e.g.,increasing cell transmitting power, reducing interference, addingrepeater, adding new cells, tuning cell antennas, etc.) as thefirst-choice solutions and recommend network upgrading/densification ifthe coverage enhancement is not enough to solve the low QoE problems. Ifthe demand is lower than the demand threshold in this cell, the systemmay recommend less optimization actions (e.g., enhancing the coverageonly) or recommend no optimization actions on this cell based onpredicted return of investment.

Network Congestion

As another example, if QoE is low and network congestion is bad in acell, the system may determine that network capacity could be adirection to optimize this cell. If the connection demand in this cellis higher than the demand, the system may recommend solutions such asupgrading, densification, offloading, load balancing, and any suitableoptimization actions, as top priority solutions, when communication pipeimprovement may not be solving the problem completely (although it couldhelp to some extent in some cases). If connection demand in this cell islower than the demand threshold, the system may determine that the lowQoE problem is caused by narrow communication pipe (e.g., bandwidth),and may recommend pipe improvement (e.g., throughput enhancement bycarrier aggregation, by MIMO, etc.) as the first direction for this cellto optimize, instead of cell densification and other optimization means.If cell pipelines could not be improved, the system may recommendnetwork upgrading, densification, offloading, etc.

Coverage and Congestion

In particular embodiments, the system may determine the root causes forlow QoE problems and generate optimization recommendations based on acombination, a pattern, or a relationship associated with multiple QoEmetrics and root-cause metrics. As another example, if the QoE is low,the signal strength level is low, and the network congestion is bad in acell, the system may determine that the cell has both coverage andcapacity problems. If the connection demand in the cell is higher thanthe demand threshold, the system may recommend with a high priority forcell densification, upgrading, offloading, etc. If the connection demandin the cell is lower than demand threshold, the system may recommendenhancing communication pipe to improve the coverage and capacity. Asanother example, if the QoE is low, the signal strength is not bad, thecongestion is not bad, and the number of samples is large, the systemmay determine that the low QoE is caused by the high demand in the cellas indicated by the large number of samples. The system may recommendcell densification, network upgrading, offloading, etc. As anotherexample, if the QoE is low in a cell, but no root cause is identified,the system may determine that the low QoE is caused by some other causesthat are not included in the currently analyzed causes. The system mayrecommend avoiding unnecessary or incorrect optimization (e.g.,improving coverage, increasing pipe) since these optimizations willunlikely improve the QoE.

Broken Fiber

As another example, the system may determine that a congestion problemis caused by a broken fiber because a lot of cells along a certain fiberlink have congestion problems. The system may recommend solution forfixing the broken fiber links. As another example, the system maydetermine that the congestion is caused by a problematic cell towerbecause all other areas around the tower have no congestion problem andthe cell covered by this particular tower has congestion problem. Thesystem may further perform the root cause analysis at sector level. Thesystem may determine that a particular antenna sector has an antennatitling problem because its corresponding area in a particular angle ofthe antenna sector is the only area has a coverage problem. The systemmay generate solution recommendations for tuning the particular antennasector.

Connection Demand

In particular embodiments, the system may recommend solutions based onthe return of the investment considering the demand as indicated by theconnection demand in the associated cell (e.g., the number of samples).For example, if connection demand is lower than the demand threshold (itcould mean there is not much incentive to add new cells), the system maynot recommend adding new cells. The system may use the number of samplesas a weighting factor to calculate the return of investment. The numberof samples may be related to the total traffic which can be gained bythis network (e.g., total traffic=number of samples×average downloadspeed per sample×time spent). The system may also use the time spent onnetwork by users as a function of QoE. For example, low QoE may reducethe time spent on the network by users if the end users reduce appengagement due to low QoE. In particular embodiments, the system maygenerate solution recommendations for upgrading the network based on apriority score determined by the system. For example, the system mayrecommend prioritizing upgradation on the cells having the more severecongestion or coverage problems.

Machine-Learning (ML) Model

ML Determine Criteria

In particular embodiments, the system may determine the low QoE and rootcauses based one or more criteria (e.g., a first set of criteria for lowQoE metrics, a second set of criteria for root-cause metrics). Inparticular embodiments, the system may determine the first or/and secondset of criteria using a machine-learning (ML) model. The ML model may betrained by pre-labeled data, historical data, collected and aggregateddata, QoE metric data, root-cause metric data, and previously used firstset of criteria for determining the low QoE, previously used second setof criterial for determining root causes. The pre-labeled data mayinclude cells with pre-labelled QoE levels (e.g., high, middle, low) andlow QoE cells with pre-labelled root causes. The data can be manuallylabeled by engineers in the fields or engineers who are manuallymonitoring or observing the cells (e.g., network traffic congestion) orthe user experiences (e.g., end users' application experience). Thehistorical data may include previous data related to the QoE metrics,the root-cause metrics, the low QoE criteria (e.g., thresholds andcorresponding metrics), the root-cause criteria (e.g., thresholds andcorresponding metrics) that are determined during previous root causeanalysis. The ML model may determine the metric threshold(s) based onthe supervised learning from the pre-labeled data. The machine learningmay use the classification method (e.g., decision trees) to generate themetric threshold(s) or conditions for categorizing network QoE intomultiple categories (e.g., low QoE, middle QoE, high QoE) which may havedifferent levels of QoE and for categorizing low QoE into multiple rootcause categories. In particular embodiments, the root analysis may beperformed using heuristic projection algorithm.

Machine Learning for Root Causes Determination

In particular embodiments, the low QoE and root causes for the low QoEcells may be directly determined by the ML model (e.g., as the output ofthe ML model). The ML model may be trained based on historical dataincluding data related to low QoE cells with pre-labelled orpreviously-determined low QoE and corresponding root causes. Thepre-labeled data may include cells with labelled QoE levels (e.g., high,middle, low) and low QoE cells with labelled root causes. The data canbe manually labeled by engineers in the fields or engineers who aremanually monitoring or observing the cells (e.g., network trafficcongestion) or the user experiences (e.g., end users' applicationexperience). The ML model may use supervised learning to determine thelow QoE and the corresponding root causes. The machine learning may usethe classification method (e.g., decision trees) to categorize networkQoE into multiple categories (e.g., low QoE, middle QoE, high QoE) andto categorize low QoE cells into multiple root cause categories todetermine the causes for the low QoE of these cells.

Example Method for Root Cause Determination

FIG. 9 illustrates an example method of determining causes of lowquality of experience in geographic areas connected by a communicationnetwork. The method may begin at step 910, where in the system maydetermine, for one or more geographic areas connected by a communicationnetwork, one or more quality of experience metrics and one or moreroot-cause metrics based on application data collected from the one ormore geographic areas. In particular embodiments, the one or morequality of experience metrics and root-cause metric may comprise one ormore of a download speed, a download speed of busy hours, a networklatency at all hours, a network latency at busy hours, a downstreamlatency, an upstream latency, a video quality score, a quality ofexperience score, a packet loss metric, a signal strength, a congestionindicator, a network latency, a number of samples, etc. At step 920, thesystem may determine that one or more of the geographic areas have lowquality of experience based on the one or more quality of experiencemetrics and a first set of criteria. In particular embodiments, thefirst set of criteria comprises one or more first thresholds for the oneor more quality of experience metrics. In particular embodiments, thesystem may determine a percentile value for each quality of experiencemetric of each geographic area of the plurality of geographic areas, andfilter the percentile values of the quality of experience metrics of theplurality of geographic areas using the one or more first thresholds.The one or more of the geographic areas may be determined to have lowquality of experience when each of these geographic areas has at leastone quality of experience metric percentile value being worse than theone or more first thresholds.

At step 930, the system may determine one or more causes for the lowquality of experience in each associated geographic area based on theone or more root-cause metrics and a second set of criteria. Inparticular embodiments, the second set of criteria may comprise one ormore second thresholds for the one or more root-cause metrics. Inparticular embodiments, the root-cause thresholds may be looser than theQoE thresholds. In particular embodiments, the system may determine apercentile value for each root-cause metric of each geographic areahaving low quality of experience among all the areas of interest, andfilter the percentile values of the root-cause metrics of the one ormore geographic areas having low quality of experience using the one ormore second thresholds. The one or more of causes may be determined whentheir corresponding root-cause metric percentile values is above the oneor more second thresholds. In particular embodiments, the one or morefirst thresholds for the one or more quality of experience metrics andthe one or more second thresholds for the one or more root-cause metricsmay be determined by a machine learning model trained by historical dataor pre-labeled data. As step 940, the system may determine a solutionrecommendation for the low quality of experience in each associatedgeographic area based on the one or more causes of the low quality ofexperience in that associated geographic area.

Particular embodiments may repeat one or more steps of the method ofFIG. 9 , where appropriate. Although this disclosure describes andillustrates particular steps of the method of FIG. 9 as occurring in aparticular order, this disclosure contemplates any suitable steps of themethod of FIG. 9 occurring in any suitable order. Moreover, althoughthis disclosure describes and illustrates an example method fordetermining root causes of low quality of experience in geographic areasconnected by a communication network including the particular steps ofthe method of FIG. 9 , this disclosure contemplates any suitable methodfor determining root causes of low quality of experience in geographicareas connected by a communication network including any suitable steps,which may include all, some, or none of the steps of the method of FIG.9 , where appropriate. Furthermore, although this disclosure describesand illustrates particular components, devices, or systems carrying outparticular steps of the method of FIG. 9 , this disclosure contemplatesany suitable combination of any suitable components, devices, or systemscarrying out any suitable steps of the method of FIG. 9 .

System Overview

FIG. 10 illustrates an example network environment 1000 associated witha social-networking system. Network environment 1000 includes a clientsystem 1030, a social-networking system 1060, and a third-party system1070 connected to each other by a network 1010. Although FIG. 10illustrates a particular arrangement of client system 1030,social-networking system 1060, third-party system 1070, and network1010, this disclosure contemplates any suitable arrangement of clientsystem 1030, social-networking system 1060, third-party system 1070, andnetwork 1010. As an example and not by way of limitation, two or more ofclient system 1030, social-networking system 1060, and third-partysystem 1070 may be connected to each other directly, bypassing network1010. As another example, two or more of client system 1030,social-networking system 1060, and third-party system 1070 may bephysically or logically co-located with each other in whole or in part.Moreover, although FIG. 10 illustrates a particular number of clientsystems 1030, social-networking systems 1060, third-party systems 1070,and networks 1010, this disclosure contemplates any suitable number ofclient systems 1030, social-networking systems 1060, third-party systems1070, and networks 1010. As an example and not by way of limitation,network environment 1000 may include multiple client system 1030,social-networking systems 1060, third-party systems 1070, and networks1010.

This disclosure contemplates any suitable network 1010. As an exampleand not by way of limitation, one or more portions of network 1010 mayinclude an ad hoc network, an intranet, an extranet, a virtual privatenetwork (VPN), a local area network (LAN), a wireless LAN (WLAN), a widearea network (WAN), a wireless WAN (WWAN), a metropolitan area network(MAN), a portion of the Internet, a portion of the Public SwitchedTelephone Network (PSTN), a cellular telephone network, or a combinationof two or more of these. Network 1010 may include one or more networks1010.

Links 1050 may connect client system 1030, social-networking system1060, and third-party system 1070 to communication network 1010 or toeach other. This disclosure contemplates any suitable links 1050. Inparticular embodiments, one or more links 1050 include one or morewireline (such as for example Digital Subscriber Line (DSL) or Data OverCable Service Interface Specification (DOCSIS)), wireless (such as forexample Wi-Fi or Worldwide Interoperability for Microwave Access(WiMAX)), or optical (such as for example Synchronous Optical Network(SONET) or Synchronous Digital Hierarchy (SDH)) links. In particularembodiments, one or more links 1050 each include an ad hoc network, anintranet, an extranet, a VPN, a LAN, a WLAN, a WAN, a WWAN, a MAN, aportion of the Internet, a portion of the PSTN, a cellulartechnology-based network, a satellite communications technology-basednetwork, another link 1050, or a combination of two or more such links1050. Links 1050 need not necessarily be the same throughout networkenvironment 1000. One or more first links 1050 may differ in one or morerespects from one or more second links 1050.

In particular embodiments, client system 1030 may be an electronicdevice including hardware, software, or embedded logic components or acombination of two or more such components and capable of carrying outthe appropriate functionalities implemented or supported by clientsystem 1030. As an example and not by way of limitation, a client system1030 may include a computer system such as a desktop computer, notebookor laptop computer, netbook, a tablet computer, e-book reader, GPSdevice, camera, personal digital assistant (PDA), handheld electronicdevice, cellular telephone, smartphone, augmented/virtual realitydevice, other suitable electronic device, or any suitable combinationthereof. This disclosure contemplates any suitable client systems 1030.A client system 1030 may enable a network user at client system 1030 toaccess network 1010. A client system 1030 may enable its user tocommunicate with other users at other client systems 1030.

In particular embodiments, client system 1030 may include a web browser1032, such as MICROSOFT INTERNET EXPLORER, GOOGLE CHROME or MOZILLAFIREFOX, and may have one or more add-ons, plug-ins, or otherextensions, such as TOOLBAR or YAHOO TOOLBAR. A user at client system1030 may enter a Uniform Resource Locator (URL) or other addressdirecting the web browser 1032 to a particular server (such as server1062, or a server associated with a third-party system 1070), and theweb browser 1032 may generate a Hyper Text Transfer Protocol (HTTP)request and communicate the HTTP request to server. The server mayaccept the HTTP request and communicate to client system 1030 one ormore Hyper Text Markup Language (HTML) files responsive to the HTTPrequest. Client system 1030 may render a webpage based on the HTML filesfrom the server for presentation to the user. This disclosurecontemplates any suitable webpage files. As an example and not by way oflimitation, webpages may render from HTML files, Extensible Hyper TextMarkup Language (XHTML) files, or Extensible Markup Language (XML)files, according to particular needs. Such pages may also executescripts such as, for example and without limitation, those written inJAVASCRIPT, JAVA, MICROSOFT SILVERLIGHT, combinations of markup languageand scripts such as AJAX (Asynchronous JAVASCRIPT and XML), and thelike. Herein, reference to a webpage encompasses one or morecorresponding webpage files (which a browser may use to render thewebpage) and vice versa, where appropriate.

In particular embodiments, social-networking system 1060 may be anetwork-addressable computing system that can host an online socialnetwork. Social-networking system 1060 may generate, store, receive, andsend social-networking data, such as, for example, user-profile data,concept-profile data, social-graph information, or other suitable datarelated to the online social network. Social-networking system 1060 maybe accessed by the other components of network environment 1000 eitherdirectly or via network 1010. As an example and not by way oflimitation, client system 1030 may access social-networking system 1060using a web browser 1032, or a native application associated withsocial-networking system 1060 (e.g., a mobile social-networkingapplication, a messaging application, another suitable application, orany combination thereof) either directly or via network 1010. Inparticular embodiments, social-networking system 1060 may include one ormore servers 1062. Each server 1062 may be a unitary server or adistributed server spanning multiple computers or multiple datacenters.Servers 1062 may be of various types, such as, for example and withoutlimitation, web server, news server, mail server, message server,advertising server, file server, application server, exchange server,database server, proxy server, another server suitable for performingfunctions or processes described herein, or any combination thereof. Inparticular embodiments, each server 1062 may include hardware, software,or embedded logic components or a combination of two or more suchcomponents for carrying out the appropriate functionalities implementedor supported by server 1062. In particular embodiments,social-networking system 1060 may include one or more data stores 1064.Data stores 1064 may be used to store various types of information. Inparticular embodiments, the information stored in data stores 1064 maybe organized according to specific data structures. In particularembodiments, each data store 1064 may be a relational, columnar,correlation, or other suitable database. Although this disclosuredescribes or illustrates particular types of databases, this disclosurecontemplates any suitable types of databases. Particular embodiments mayprovide interfaces that enable a client system 1030, a social-networkingsystem 1060, or a third-party system 1070 to manage, retrieve, modify,add, or delete, the information stored in data store 1064.

In particular embodiments, social-networking system 1060 may store oneor more social graphs in one or more data stores 1064. In particularembodiments, a social graph may include multiple nodes—which may includemultiple user nodes (each corresponding to a particular user) ormultiple concept nodes (each corresponding to a particular concept)—andmultiple edges connecting the nodes. Social-networking system 1060 mayprovide users of the online social network the ability to communicateand interact with other users. In particular embodiments, users may jointhe online social network via social-networking system 1060 and then addconnections (e.g., relationships) to a number of other users ofsocial-networking system 1060 to whom they want to be connected. Herein,the term “friend” may refer to any other user of social-networkingsystem 1060 with whom a user has formed a connection, association, orrelationship via social-networking system 1060.

In particular embodiments, social-networking system 1060 may provideusers with the ability to take actions on various types of items orobjects, supported by social-networking system 1060. As an example andnot by way of limitation, the items and objects may include groups orsocial networks to which users of social-networking system 1060 maybelong, events or calendar entries in which a user might be interested,computer-based applications that a user may use, transactions that allowusers to buy or sell items via the service, interactions withadvertisements that a user may perform, or other suitable items orobjects. A user may interact with anything that is capable of beingrepresented in social-networking system 1060 or by an external system ofthird-party system 1070, which is separate from social-networking system1060 and coupled to social-networking system 1060 via a network 1010.

In particular embodiments, social-networking system 1060 may be capableof linking a variety of entities. As an example and not by way oflimitation, social-networking system 1060 may enable users to interactwith each other as well as receive content from third-party systems 1070or other entities, or to allow users to interact with these entitiesthrough an application programming interfaces (API) or othercommunication channels.

In particular embodiments, a third-party system 1070 may include one ormore types of servers, one or more data stores, one or more interfaces,including but not limited to APIs, one or more web services, one or morecontent sources, one or more networks, or any other suitable components,e.g., that servers may communicate with. A third-party system 1070 maybe operated by a different entity from an entity operatingsocial-networking system 1060. In particular embodiments, however,social-networking system 1060 and third-party systems 1070 may operatein conjunction with each other to provide social-networking services tousers of social-networking system 1060 or third-party systems 1070. Inthis sense, social-networking system 1060 may provide a platform, orbackbone, which other systems, such as third-party systems 1070, may useto provide social-networking services and functionality to users acrossthe Internet.

In particular embodiments, a third-party system 1070 may include athird-party content object provider. A third-party content objectprovider may include one or more sources of content objects, which maybe communicated to a client system 1030. As an example and not by way oflimitation, content objects may include information regarding things oractivities of interest to the user, such as, for example, movie showtimes, movie reviews, restaurant reviews, restaurant menus, productinformation and reviews, or other suitable information. As anotherexample and not by way of limitation, content objects may includeincentive content objects, such as coupons, discount tickets, giftcertificates, or other suitable incentive objects.

In particular embodiments, social-networking system 1060 also includesuser-generated content objects, which may enhance a user's interactionswith social-networking system 1060. User-generated content may includeanything a user can add, upload, send, or “post” to social-networkingsystem 1060. As an example and not by way of limitation, a usercommunicates posts to social-networking system 1060 from a client system1030. Posts may include data such as status updates or other textualdata, location information, photos, videos, links, music or othersimilar data or media. Content may also be added to social-networkingsystem 1060 by a third-party through a “communication channel,” such asa newsfeed or stream.

In particular embodiments, social-networking system 1060 may include avariety of servers, sub-systems, programs, modules, logs, and datastores. In particular embodiments, social-networking system 1060 mayinclude one or more of the following: a web server, action logger,API-request server, relevance-and-ranking engine, content-objectclassifier, notification controller, action log,third-party-content-object-exposure log, inference module,authorization/privacy server, search module, advertisement-targetingmodule, user-interface module, user-profile store, connection store,third-party content store, or location store. Social-networking system1060 may also include suitable components such as network interfaces,security mechanisms, load balancers, failover servers,management-and-network-operations consoles, other suitable components,or any suitable combination thereof. In particular embodiments,social-networking system 1060 may include one or more user-profilestores for storing user profiles. A user profile may include, forexample, biographic information, demographic information, behavioralinformation, social information, or other types of descriptiveinformation, such as work experience, educational history, hobbies orpreferences, interests, affinities, or location. Interest informationmay include interests related to one or more categories. Categories maybe general or specific. As an example and not by way of limitation, if auser “likes” an article about a brand of shoes the category may be thebrand, or the general category of “shoes” or “clothing.” A connectionstore may be used for storing connection information about users. Theconnection information may indicate users who have similar or commonwork experience, group memberships, hobbies, educational history, or arein any way related or share common attributes. The connectioninformation may also include user-defined connections between differentusers and content (both internal and external). A web server may be usedfor linking social-networking system 1060 to one or more client systems1030 or one or more third-party system 1070 via network 1010. The webserver may include a mail server or other messaging functionality forreceiving and routing messages between social-networking system 1060 andone or more client systems 1030. An API-request server may allow athird-party system 1070 to access information from social-networkingsystem 1060 by calling one or more APIs. An action logger may be used toreceive communications from a web server about a user's actions on oroff social-networking system 1060. In conjunction with the action log, athird-party-content-object log may be maintained of user exposures tothird-party-content objects. A notification controller may provideinformation regarding content objects to a client system 1030.Information may be pushed to a client system 1030 as notifications, orinformation may be pulled from client system 1030 responsive to arequest received from client system 1030. Authorization servers may beused to enforce one or more privacy settings of the users ofsocial-networking system 1060. A privacy setting of a user determineshow particular information associated with a user can be shared. Theauthorization server may allow users to opt in to or opt out of havingtheir actions logged by social-networking system 1060 or shared withother systems (e.g., third-party system 1070), such as, for example, bysetting appropriate privacy settings. Third-party-content-object storesmay be used to store content objects received from third parties, suchas a third-party system 1070. Location stores may be used for storinglocation information received from client systems 1030 associated withusers. Advertisement-pricing modules may combine social information, thecurrent time, location information, or other suitable information toprovide relevant advertisements, in the form of notifications, to auser.

Privacy

In particular embodiments, one or more of the content objects of theonline social network may be associated with a privacy setting. Theprivacy settings (or “access settings”) for an object may be stored inany suitable manner, such as, for example, in association with theobject, in an index on an authorization server, in another suitablemanner, or any combination thereof. A privacy setting of an object mayspecify how the object (or particular information associated with anobject) can be accessed (e.g., viewed or shared) using the online socialnetwork. Where the privacy settings for an object allow a particularuser to access that object, the object may be described as being“visible” with respect to that user. As an example and not by way oflimitation, a user of the online social network may specify privacysettings for a user-profile page that identify a set of users that mayaccess the work experience information on the user-profile page, thusexcluding other users from accessing the information. In particularembodiments, the privacy settings may specify a “blocked list” of usersthat should not be allowed to access certain information associated withthe object. In other words, the blocked list may specify one or moreusers or entities for which an object is not visible. As an example andnot by way of limitation, a user may specify a set of users that may notaccess photos albums associated with the user, thus excluding thoseusers from accessing the photo albums (while also possibly allowingcertain users not within the set of users to access the photo albums).In particular embodiments, privacy settings may be associated withparticular social-graph elements. Privacy settings of a social-graphelement, such as a node or an edge, may specify how the social-graphelement, information associated with the social-graph element, orcontent objects associated with the social-graph element can be accessedusing the online social network. As an example and not by way oflimitation, a particular concept node #04 corresponding to a particularphoto may have a privacy setting specifying that the photo may only beaccessed by users tagged in the photo and their friends. In particularembodiments, privacy settings may allow users to opt in or opt out ofhaving their actions logged by social-networking system 1060 or sharedwith other systems (e.g., third-party system 1070). In particularembodiments, the privacy settings associated with an object may specifyany suitable granularity of permitted access or denial of access. As anexample and not by way of limitation, access or denial of access may bespecified for particular users (e.g., only me, my roommates, and myboss), users within a particular degrees-of-separation (e.g., friends,or friends-of-friends), user groups (e.g., the gaming club, my family),user networks (e.g., employees of particular employers, students oralumni of particular university), all users (“public”), no users(“private”), users of third-party systems 1070, particular applications(e.g., third-party applications, external websites), other suitableusers or entities, or any combination thereof. Although this disclosuredescribes using particular privacy settings in a particular manner, thisdisclosure contemplates using any suitable privacy settings in anysuitable manner.

In particular embodiments, one or more servers 1062 may beauthorization/privacy servers for enforcing privacy settings. Inresponse to a request from a user (or other entity) for a particularobject stored in a data store 1064, social-networking system 1060 maysend a request to the data store 1064 for the object. The request mayidentify the user associated with the request and may only be sent tothe user (or a client system 1030 of the user) if the authorizationserver determines that the user is authorized to access the object basedon the privacy settings associated with the object. If the requestinguser is not authorized to access the object, the authorization servermay prevent the requested object from being retrieved from the datastore 1064, or may prevent the requested object from being sent to theuser. In the search query context, an object may only be generated as asearch result if the querying user is authorized to access the object.In other words, the object must have a visibility that is visible to thequerying user. If the object has a visibility that is not visible to theuser, the object may be excluded from the search results. Although thisdisclosure describes enforcing privacy settings in a particular manner,this disclosure contemplates enforcing privacy settings in any suitablemanner.

Systems and Methods

FIG. 11 illustrates an example computer system 1100. In particularembodiments, one or more computer systems 1100 perform one or more stepsof one or more methods described or illustrated herein. In particularembodiments, one or more computer systems 1100 provide functionalitydescribed or illustrated herein. In particular embodiments, softwarerunning on one or more computer systems 1100 performs one or more stepsof one or more methods described or illustrated herein or providesfunctionality described or illustrated herein. Particular embodimentsinclude one or more portions of one or more computer systems 1100.Herein, reference to a computer system may encompass a computing device,and vice versa, where appropriate. Moreover, reference to a computersystem may encompass one or more computer systems, where appropriate.

This disclosure contemplates any suitable number of computer systems1100. This disclosure contemplates computer system 1100 taking anysuitable physical form. As example and not by way of limitation,computer system 1100 may be an embedded computer system, asystem-on-chip (SOC), a single-board computer system (SBC) (such as, forexample, a computer-on-module (COM) or system-on-module (SOM)), adesktop computer system, a laptop or notebook computer system, aninteractive kiosk, a mainframe, a mesh of computer systems, a mobiletelephone, a personal digital assistant (PDA), a server, a tabletcomputer system, an augmented/virtual reality device, or a combinationof two or more of these. Where appropriate, computer system 1100 mayinclude one or more computer systems 1100; be unitary or distributed;span multiple locations; span multiple machines; span multiple datacenters; or reside in a cloud, which may include one or more cloudcomponents in one or more networks. Where appropriate, one or morecomputer systems 1100 may perform without substantial spatial ortemporal limitation one or more steps of one or more methods describedor illustrated herein. As an example and not by way of limitation, oneor more computer systems 1100 may perform in real time or in batch modeone or more steps of one or more methods described or illustratedherein. One or more computer systems 1100 may perform at different timesor at different locations one or more steps of one or more methodsdescribed or illustrated herein, where appropriate.

In particular embodiments, computer system 1100 includes a processor1102, memory 1104, storage 1106, an input/output (I/O) interface 1108, acommunication interface 1110, and a bus 1112. Although this disclosuredescribes and illustrates a particular computer system having aparticular number of particular components in a particular arrangement,this disclosure contemplates any suitable computer system having anysuitable number of any suitable components in any suitable arrangement.

In particular embodiments, processor 1102 includes hardware forexecuting instructions, such as those making up a computer program. Asan example and not by way of limitation, to execute instructions,processor 1102 may retrieve (or fetch) the instructions from an internalregister, an internal cache, memory 1104, or storage 1106; decode andexecute them; and then write one or more results to an internalregister, an internal cache, memory 1104, or storage 1106. In particularembodiments, processor 1102 may include one or more internal caches fordata, instructions, or addresses. This disclosure contemplates processor1102 including any suitable number of any suitable internal caches,where appropriate. As an example and not by way of limitation, processor1102 may include one or more instruction caches, one or more datacaches, and one or more translation lookaside buffers (TLBs).Instructions in the instruction caches may be copies of instructions inmemory 1104 or storage 1106, and the instruction caches may speed upretrieval of those instructions by processor 1102. Data in the datacaches may be copies of data in memory 1104 or storage 1106 forinstructions executing at processor 1102 to operate on; the results ofprevious instructions executed at processor 1102 for access bysubsequent instructions executing at processor 1102 or for writing tomemory 1104 or storage 1106; or other suitable data. The data caches mayspeed up read or write operations by processor 1102. The TLBs may speedup virtual-address translation for processor 1102. In particularembodiments, processor 1102 may include one or more internal registersfor data, instructions, or addresses. This disclosure contemplatesprocessor 1102 including any suitable number of any suitable internalregisters, where appropriate. Where appropriate, processor 1102 mayinclude one or more arithmetic logic units (ALUs); be a multi-coreprocessor; or include one or more processors 1102. Although thisdisclosure describes and illustrates a particular processor, thisdisclosure contemplates any suitable processor.

In particular embodiments, memory 1104 includes main memory for storinginstructions for processor 1102 to execute or data for processor 1102 tooperate on. As an example and not by way of limitation, computer system1100 may load instructions from storage 1106 or another source (such as,for example, another computer system 1100) to memory 1104. Processor1102 may then load the instructions from memory 1104 to an internalregister or internal cache. To execute the instructions, processor 1102may retrieve the instructions from the internal register or internalcache and decode them. During or after execution of the instructions,processor 1102 may write one or more results (which may be intermediateor final results) to the internal register or internal cache. Processor1102 may then write one or more of those results to memory 1104. Inparticular embodiments, processor 1102 executes only instructions in oneor more internal registers or internal caches or in memory 1104 (asopposed to storage 1106 or elsewhere) and operates only on data in oneor more internal registers or internal caches or in memory 1104 (asopposed to storage 1106 or elsewhere). One or more memory buses (whichmay each include an address bus and a data bus) may couple processor1102 to memory 1104. Bus 1112 may include one or more memory buses, asdescribed below. In particular embodiments, one or more memorymanagement units (MMUs) reside between processor 1102 and memory 1104and facilitate accesses to memory 1104 requested by processor 1102. Inparticular embodiments, memory 1104 includes random access memory (RAM).This RAM may be volatile memory, where appropriate. Where appropriate,this RAM may be dynamic RAM (DRAM) or static RAM (SRAM). Moreover, whereappropriate, this RAM may be single-ported or multi-ported RAM. Thisdisclosure contemplates any suitable RAM. Memory 1104 may include one ormore memories 1104, where appropriate. Although this disclosuredescribes and illustrates particular memory, this disclosurecontemplates any suitable memory.

In particular embodiments, storage 1106 includes mass storage for dataor instructions. As an example and not by way of limitation, storage1106 may include a hard disk drive (HDD), a floppy disk drive, flashmemory, an optical disc, a magneto-optical disc, magnetic tape, or aUniversal Serial Bus (USB) drive or a combination of two or more ofthese. Storage 1106 may include removable or non-removable (or fixed)media, where appropriate. Storage 1106 may be internal or external tocomputer system 1100, where appropriate. In particular embodiments,storage 1106 is non-volatile, solid-state memory. In particularembodiments, storage 1106 includes read-only memory (ROM). Whereappropriate, this ROM may be mask-programmed ROM, programmable ROM(PROM), erasable PROM (EPROM), electrically erasable PROM (EEPROM),electrically alterable ROM (EAROM), or flash memory or a combination oftwo or more of these. This disclosure contemplates mass storage 1106taking any suitable physical form. Storage 1106 may include one or morestorage control units facilitating communication between processor 1102and storage 1106, where appropriate. Where appropriate, storage 1106 mayinclude one or more storages 1106. Although this disclosure describesand illustrates particular storage, this disclosure contemplates anysuitable storage.

In particular embodiments, I/O interface 1108 includes hardware,software, or both, providing one or more interfaces for communicationbetween computer system 1100 and one or more I/O devices. Computersystem 1100 may include one or more of these I/O devices, whereappropriate. One or more of these I/O devices may enable communicationbetween a person and computer system 1100. As an example and not by wayof limitation, an I/O device may include a keyboard, keypad, microphone,monitor, mouse, printer, scanner, speaker, still camera, stylus, tablet,touch screen, trackball, video camera, another suitable I/O device or acombination of two or more of these. An I/O device may include one ormore sensors. This disclosure contemplates any suitable I/O devices andany suitable I/O interfaces 1108 for them. Where appropriate, I/Ointerface 1108 may include one or more device or software driversenabling processor 1102 to drive one or more of these I/O devices. I/Ointerface 1108 may include one or more I/O interfaces 1108, whereappropriate. Although this disclosure describes and illustrates aparticular I/O interface, this disclosure contemplates any suitable I/Ointerface.

In particular embodiments, communication interface 1110 includeshardware, software, or both providing one or more interfaces forcommunication (such as, for example, packet-based communication) betweencomputer system 1100 and one or more other computer systems 1100 or oneor more networks. As an example and not by way of limitation,communication interface 1110 may include a network interface controller(NIC) or network adapter for communicating with an Ethernet or otherwire-based network or a wireless NIC (WNIC) or wireless adapter forcommunicating with a wireless network, such as a WI-FI network. Thisdisclosure contemplates any suitable network and any suitablecommunication interface 1110 for it. As an example and not by way oflimitation, computer system 1100 may communicate with an ad hoc network,a personal area network (PAN), a local area network (LAN), a wide areanetwork (WAN), a metropolitan area network (MAN), or one or moreportions of the Internet or a combination of two or more of these. Oneor more portions of one or more of these networks may be wired orwireless. As an example, computer system 1100 may communicate with awireless PAN (WPAN) (such as, for example, a BLUETOOTH WPAN), a WI-FInetwork, a WI-MAX network, a cellular telephone network (such as, forexample, a Global System for Mobile Communications (GSM) network), orother suitable wireless network or a combination of two or more ofthese. Computer system 1100 may include any suitable communicationinterface 1110 for any of these networks, where appropriate.Communication interface 1110 may include one or more communicationinterfaces 1110, where appropriate. Although this disclosure describesand illustrates a particular communication interface, this disclosurecontemplates any suitable communication interface.

In particular embodiments, bus 1112 includes hardware, software, or bothcoupling components of computer system 1100 to each other. As an exampleand not by way of limitation, bus 1112 may include an AcceleratedGraphics Port (AGP) or other graphics bus, an Enhanced Industry StandardArchitecture (EISA) bus, a front-side bus (FSB), a HYPERTRANSPORT (HT)interconnect, an Industry Standard Architecture (ISA) bus, an INFINIBANDinterconnect, a low-pin-count (LPC) bus, a memory bus, a Micro ChannelArchitecture (MCA) bus, a Peripheral Component Interconnect (PCI) bus, aPCI-Express (PCIe) bus, a serial advanced technology attachment (SATA)bus, a Video Electronics Standards Association local (VLB) bus, oranother suitable bus or a combination of two or more of these. Bus 1112may include one or more buses 1112, where appropriate. Although thisdisclosure describes and illustrates a particular bus, this disclosurecontemplates any suitable bus or interconnect.

Herein, a computer-readable non-transitory storage medium or media mayinclude one or more semiconductor-based or other integrated circuits(ICs) (such, as for example, field-programmable gate arrays (FPGAs) orapplication-specific ICs (ASICs)), hard disk drives (HDDs), hybrid harddrives (HHDs), optical discs, optical disc drives (ODDs),magneto-optical discs, magneto-optical drives, floppy diskettes, floppydisk drives (FDDs), magnetic tapes, solid-state drives (SSDs),RAM-drives, SECURE DIGITAL cards or drives, any other suitablecomputer-readable non-transitory storage media, or any suitablecombination of two or more of these, where appropriate. Acomputer-readable non-transitory storage medium may be volatile,non-volatile, or a combination of volatile and non-volatile, whereappropriate.

Herein, “or” is inclusive and not exclusive, unless expressly indicatedotherwise or indicated otherwise by context. Therefore, herein, “A or B”means “A, B, or both,” unless expressly indicated otherwise or indicatedotherwise by context. Moreover, “and” is both joint and several, unlessexpressly indicated otherwise or indicated otherwise by context.Therefore, herein, “A and B” means “A and B, jointly or severally,”unless expressly indicated otherwise or indicated otherwise by context.

The scope of this disclosure encompasses all changes, substitutions,variations, alterations, and modifications to the example embodimentsdescribed or illustrated herein that a person having ordinary skill inthe art would comprehend. The scope of this disclosure is not limited tothe example embodiments described or illustrated herein. Moreover,although this disclosure describes and illustrates respectiveembodiments herein as including particular components, elements,feature, functions, operations, or steps, any of these embodiments mayinclude any combination or permutation of any of the components,elements, features, functions, operations, or steps described orillustrated anywhere herein that a person having ordinary skill in theart would comprehend. Furthermore, reference in the appended claims toan apparatus or system or a component of an apparatus or system beingadapted to, arranged to, capable of, configured to, enabled to, operableto, or operative to perform a particular function encompasses thatapparatus, system, component, whether or not it or that particularfunction is activated, turned on, or unlocked, as long as thatapparatus, system, or component is so adapted, arranged, capable,configured, enabled, operable, or operative. Additionally, although thisdisclosure describes or illustrates particular embodiments as providingparticular advantages, particular embodiments may provide none, some, orall of these advantages.

What is claimed is:
 1. A method comprising, by one or more computingsystems: accessing a plurality of quality of experience metrics from aplurality of geographic areas, respectively; identifying a firstgeographic area of the plurality of geographic areas connected by afirst communication network that has low quality of experiences based onquality of experience metrics and a set of criteria, wherein the set ofcriteria comprises one or more thresholds corresponding to the qualityof experience metrics; determining, for the first geographic area, aseverity of the low quality of experiences, wherein the severity isbased on a connection demand metric associated with each geographicarea; identifying a second communication network that has one or morequality of experience metrics higher than the first communicationnetwork; and sending, to a client system, instructions for automaticallychanging from the first communication network to the secondcommunication network.
 2. The method of claim 1, wherein identifying thefirst geographic area of the plurality of geographic areas connected bythe first communication network that has the low quality of experiencescomprises: determining a percentile value for each quality of experiencemetric of each geographic area of the plurality of geographic areas; andfiltering the percentile values of the quality of experience metrics ofthe plurality of geographic areas using the one or more thresholds,wherein the one or more of the geographic areas are determined to havelow quality of experiences when each of these geographic areas has atleast one quality of experience metric percentile value being above theone or more thresholds.
 3. The method of claim 1, further comprising:sending, to the client system, instructions for presenting a quality ofexperience report, wherein the quality of experience report indicatesthe severity of the low quality of experiences.
 4. The method of claim3, wherein the quality of experience report comprises a solutionrecommendation for the low quality of experiences for each identifiedgeographic area.
 5. The method of claim 4, wherein the solutionrecommendation comprises one or more recommendation actions comprisingone or more of: upgrading network; network densification; networktraffic offloading; or network load balancing.
 6. The method of claim 3,wherein the quality of experience report comprises a user interface,wherein the user interface comprises a map indicating the severity ofthe low quality of experiences for the first geographic area.
 7. Themethod of claim 6, wherein the user interface is configurable toindicate the quality of experience metrics associated with the lowquality of experiences.
 8. The method of claim 1, wherein the connectiondemand metric comprises one or more of: a number of samples; a number ofconnected devices; a number of connected users; an amount of transmitteddata; a network traffic metric; or a revenue metric.
 9. The method ofclaim 1, wherein the quality of experience metrics comprise one or moreof: a download speed; a download speed of busy hours; a network latencyat all hours; a network latency at busy hours; a downstream latency; anupstream latency; a video quality score; a quality of experience score;a packet loss metric; a signal strength; a congestion indicator; anetwork latency; or a number of samples.
 10. The method of claim 1,wherein the one or more thresholds corresponding to the quality ofexperience metrics are determined by a machine learning model.
 11. Oneor more computer-readable non-transitory storage media embodyingsoftware that is operable when executed to: access a plurality ofquality of experience metrics from a plurality of geographic areas,respectively; identify a first geographic area of the plurality ofgeographic areas connected by a first communication network that has lowquality of experiences based on quality of experience metrics and a setof criteria, wherein the set of criteria comprises one or morethresholds corresponding to the quality of experience metrics;determine, for the first geographic area, a severity of the low qualityof experiences, wherein the severity is based on a connection demandmetric associated with each geographic area; identify a secondcommunication network that has one or more quality of experience metricshigher than the first communication network; and send, to a clientsystem, instructions for automatically changing from the firstcommunication network to the second communication network.
 12. Thecomputer-readable non-transitory storage media of claim 11, whereinidentifying the first geographic area of the plurality of geographicareas connected by the first communication network that has the lowquality of experiences comprises: determining a percentile value foreach quality of experience metric of each geographic area of theplurality of geographic areas; and filtering the percentile values ofthe quality of experience metrics of the plurality of geographic areasusing the one or more thresholds, wherein the one or more of thegeographic areas are determined to have low quality of experiences wheneach of these geographic areas has at least one quality of experiencemetric percentile value being above the one or more thresholds.
 13. Thecomputer-readable non-transitory storage media of claim 11, wherein asolution recommendation comprises one or more recommendation actionscomprising one or more of: sending, to the client system, instructionsfor presenting a quality of experience report, wherein the quality ofexperience report indicates the severity of the low quality ofexperiences.
 14. The computer-readable non-transitory storage media ofclaim 13, wherein the quality of experience report comprises a solutionrecommendation for the low quality of experiences for each identifiedgeographic area.
 15. The computer-readable non-transitory storage mediaof claim 14, wherein the solution recommendation comprises the one ormore recommendation actions comprising one or more of: upgradingnetwork; network densification; network traffic offloading; or networkload balancing.
 16. A system comprising: one or more non-transitorycomputer-readable storage media embodying instructions; and one or moreprocessors coupled to the storage media and operable to execute theinstructions to: access a plurality of quality of experience metricsfrom a plurality of geographic areas, respectively; identify a firstgeographic area of the plurality of geographic areas connected by afirst communication network that has low quality of experiences based onquality of experience metrics and a set of criteria, wherein the set ofcriteria comprises one or more thresholds corresponding to the qualityof experience metrics; determine, for the first geographic area, aseverity of the low quality of experiences, wherein the severity isbased on a connection demand metric associated with each geographicarea; identify a second communication network that has one or morequality of experience metrics higher than the first communicationnetwork; and send, to a client system, instructions for automaticallychanging from the first communication network to the secondcommunication network.
 17. The system of claim 16, wherein identifyingthe first geographic area of the plurality of geographic areas connectedby the first communication network that has the low quality ofexperiences comprises: determining a percentile value for each qualityof experience metric of each geographic area of the plurality ofgeographic areas; and filtering the percentile values of the quality ofexperience metrics of the plurality of geographic areas using the one ormore thresholds, wherein the one or more of the geographic areas aredetermined to have low quality of experiences when each of thesegeographic areas has at least one quality of experience metricpercentile value being above the one or more thresholds.
 18. The systemof claim 16, further comprising: sending, to the client system,instructions for presenting a quality of experience report, wherein thequality of experience report indicates the severity of the low qualityof experiences.
 19. The system of claim 18, wherein the quality ofexperience report comprises a solution recommendation for the lowquality of experiences for each identified geographic area.
 20. Thesystem of claim 19, wherein the solution recommendation comprises one ormore recommendation actions comprising one or more of: upgradingnetwork; network densification; network traffic offloading; or networkload balancing.